Распечатать страницу

Получение информации о типе данных VFP

« Назад

Функция

TYPE(cExpression [, 1]))

оценивает заключенное в кавычки выражение и возвращает символ, характеризующий тип выражения. Если значение выражения не может быть вычислено, то функция вернет "U". Если cExpression – это массив, то результат функции формируется по типу его первого элемента.

Параметр:

1 – позволяет, если задан, определить, содержит ли cExpression массив или коллекцию. Для COM-объектов параметр не поддерживается.

В табл. 3.4 приводится соответствие между типом выражения и возвращаемым функцией результатом.

Таблица 3.4

Символ, возвращаемый TYPE( ) и VARTYPE( )

Символ, возвращаемый

Тип данных

TYPE( )

VARTYPE( )

A

Массив; результат возвращается, если в TYPE( ) задан параметр 1

C

Character, Varchar, Varchar(Binary); если в TYPE( ) задан параметр 1, то результат С означает, что cExpression – это коллекция

D

Date

G

General

L

Logical

M

С

Memo

N

Numeric (Float, Double, Integer)

O

Object

Q

Varbinary

T

DateTime

S

Screen (создается SAVE SCREEN)

U

Неопределенный

W

Q

Blob

X

Null (только VARTYPE( ))

Y

Currency

Пример:

? Type("someVar")             && Напечатает: U

someVar = "Это строка"

&& Функция TYPE( ) оценивает заключенное в кавычки выражение

? Type("someVar + someVar")       && Напечатает: C

? Type("$ 123.45")             && Напечатает: Y

? Type("Date( )")                && Напечатает: D

? Type("{^2004-12-31 10:25:44 a}")        && Напечатает: T

? Type("IsBlank(someVar)")  && Напечатает: L

? Type("123.45E10")          && Напечатает: N

&&

someVarbinary = 0h616263  && Строка "abc"

? Type("someVarbinary")   && Напечатает: Q

&&

dimension someArray(5)

&& Все элементы массива будут иметь тип Character

someArray = someVar

&& Меняем тип первого элемента массива на Logical

someArray(1) = .F.

? Type("someArray")         && Напечатает: L

? Type("someArray", 1)     && Напечатает: A

Функция

VARTYPE(eExpression [, lNullDataType])

возвращает символ (см. табл. 3.4), характеризующий тип выражения eExpression. Если значение выражения не может быть вычислено, то функция вернет "U". Если функции передать массив, то ее результат формируется по типу его первого элемента.

Если eExpression содержит NULL-значение и если логический параметр lNullDataType опущен или равен .F., то VARTYPE( ) вернет 'X', и вернет тип выражения, если lNullDataType = .T.

Функции VARTYPE( ) и TYPE( ) похожи, но первая быстрее и принимает выражение, как оно есть, без обрамляющих кавычек.

Пример:

? VarType(someVar)          && Напечатает: U

someVar = "Это строка"

? VarType(someVar + someVar)    && Напечатает: C

? VarType($ 123.45)          && Напечатает: Y

&& …

dimension someArray(5)

&& Все элементы массива будут иметь тип Numeric

someArray = 9

&& Устанавливаем NULL в первый элемент массива

someArray(1) = NULL

? VarType(someArray, .F.) && Напечатает: X

? VarType(someArray, .T.) && Напечатает: N