Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
153
Добавлен:
02.05.2014
Размер:
1.63 Mб
Скачать

3.3.4. Тип данных Variant

Переменная Variant способна хранить все определенные системой типы данных. Выполнять преобразования между этими типами данных нет необходимости — при взаимных присвоениях переменных Variant Visual Basic автоматически выполняет любое необходимое пре­образование. Например:

Dim VarVariant ' Variant по умолчанию

VarVariant = "20" ' VarVariant содержит "20" (двухсимвольная строка).

VarVariant = VarVariant + 77 ' VarVariant теперь содержит числовое значение 97

VarVariant = "Access " & VarVariant ' VarVariant теперь содержит ' "Access 97" (строка)

Хотя с переменными Variant можно выполнять операции, не задумываясь о виде данных, который они содержат, с этим типом данных связаны некоторые нюансы, которые следует всегда иметь в виду:

• при выполнении с данными Variant арифметических операций или функций, переменные Variant должны содержать нечто, что может интерпретироваться как число;

• при сцеплении строк нужно использовать операцию & вместо операции +.

В дополнение к способности работать подобно другим стандартным типам данных перемен­ные Variant могут также содержать четыре специальных значения: Empty, Null, Nothing и Error.

Значение Empty. Иногда требуется узнать, было ли переменной когда-либо присвоено значение. До присво­ения значений переменная Variant имеет значение Empty — специальное значение, отлич­ное от 0, строки нулевой длины ("") или значения Null. Протестировать переменную на значение Empty можно функцией IsEmpty:

If IsEmpty(Z) Then Z = 0

Когда Variant содержит значение Empty, его можно использовать в выражениях; в зависимо­сти от выражения это значение обрабатывается либо как 0, либо как строка нулевой длины.

Значение Empty исчезает, как только переменной Variant присвоено любое значение (вклю­чая 0, нулевую строку или Null). Установить переменную Variant обратно в Empty можно присвоением переменной ключевого слова Empty.

Значение Null. Тип данных Variant может содержать другое специальное значение: Null. Null обычно ис­пользуется в приложениях базы данных для обозначения неизвестных или отсутствующих данных. Из-за способа его использования в базах данных значение Null имеет некоторые специфические особенности:

• выражения, включающие Null, всегда возвращают Null. Таким образом, Null, как говорят, "размножается" по выражению; если часть выражения оценивается как Null, все выраже­ние оценивается как Null;

• при передаче Null, Variant, содержащего Null, или выражения, которое оценивается как Null, в качестве параметра функций большинство функций возвращает Null;

• значения Null размножаются через встроенные функции, которые возвращают тип данно­го Variant.

Присвоить Null можно ключевым словом Null:

Z = Null

Для выяснения, содержит ли Null переменная Variant, используется функция IsNull:

If IsNull(X) And IsNull(Y) Then

Z = Null

Else

Z = 0

End If

При попытке присвоить Null переменной любого типа, отличного от Variant, происходит ошибка периода выполнения.

Переменные не получают значение Null помимо явного присвоения, поэтому, если в прило­жении Null не используется, вводить код для проверки и управления этим значением нет необходимости.

Значение Error. Error в переменных Variant— специальное значение, используемое для индикации того, что в процедуре имеет место условие ошибки. Однако, в отличие от других видов ошибок, нормальная обработка ошибок уровня приложения в данном случае не происходит. Это дает разработчику в работе с ошибками дополнительные возможности. Значения Error создаются с помощью функции CVErr преобразованием вещественных чисел к значениям ошибок.

Функция CVErr используется, в частности, для создания пользовательских ошибок в поль­зовательских процедурах. Например, пусть имеется функция, которая принимает несколько параметров и нормально возвращает строковое значение, если входные параметры попа­дают в некоторый интервал значений. Если это не так, то, вероятно, функция не вернет нормальный результат. В этом случае с помощью CVErr можно вернуть некоторый пользо­вательский номер ошибки.

Специальное значение Nothing используется при работе с объектами, о чем речь ниже.

Соседние файлы в предмете Базы данных