DBF.GetField


Библиотека

DBF.AEL

Синтаксис

DBF.GetField(dbfFile: IDENT;
             fieldName: STRING[]
            ): ANYTYPE;

Описание

Функция возвращает значение DBF-поля по имени fieldName для текущей записи файла dbfFile. Файл должен быть открыт, поле в нем должно существовать. Тип возвращаемого значения соответствует описанию типа, возвращаемому процедурой DBF.ConvTYPENAME. Может вернуть пустое значение. Если обнаружен неизвестный тип поля, либо поле имеет недопустимое значение, функция выбросит исключение.

В версии 14.138.020 исправлено преобразование для типов 'N' и 'F', чтобы допускалось строковое представление не только с фиксированной точкой, но и м плавающей. В той же версии 14.138.020 исправлено преобразование для типов 'I' и '+'; раньше оно работало неправильно.

Символ DBF-типа Длина Имя DBF-типа Коммен-тарий Способ хранения Диапазон возможных значений Соответствующий тип ASB Диапазон переводимых значений
'B' 10 Binary (dBASE) Бинарные данные Бинарное в memo-файле   FLOAT (позиция в memo-файле)  
'B' 8 Double (FoxPro) Плавающее число Бинарное [-1E308 .. 1E308] (точность мантиссы ~15 десятичных знаков) FLOAT Все
'C' [1 .. 65535] Character Строка Текстовое   STRING[DBFLen+256*DBFDec] Все
'D' 8 Date Дата Текстовое [01\01\0001 .. 31\12\9999], пустое значение DATE [01\01\1900 .. 31\12\2027]
'F' [1..20] Float Плавающее число Текстовое [-9999999999999999999 .. 99999999999999999999], пустое значение NUMERIC[(DBFLen+1)/2*2, DBFDec] - если DBFLen и DBFDec меньше либо равны 18, FLOAT - в противном случае Все
'G' 10 General Поток данных OLE Бинарное в memo-файле   FLOAT (позиция в memo-файле)  
'I' 4 Integer Целое число Бинарное [-2147483648 .. 2147483647] NUMERIC[10, 0] Все
'L' 1 Logical Булевский тип Текстовое 0, 1, пустое значение SCAL[2] Все
'M' 10 Memo Строка Текстовое в memo-файле   FLOAT (позиция в memo-файле)  
'N' [1..20] Numeric Число с фиксиро-
ванной точкой
Текстовое [-9999999999999999999 .. 99999999999999999999], пустое значение NUMERIC[(DBFLen+1)/2*2, DBFDec] - если DBFLen и DBFDec меньше либо равны 18, FLOAT - в противном случае Все
'O' 8 Double (dBASE 7) Плавающее
число
Бинарное [-1E308 .. 1E308] (точность мантиссы ~15 десятичных знаков) FLOAT Все
'P' 10 Picture (FoxPro) Изобра-жение Бинарное в memo-файле   FLOAT (позиция в memo-файле)  
'T' 14 DateTime (FoxPro) Дата и время Текстовое [01\01\0001 00:00:00 .. 31\12\9999 23:59:59], пустое значение FLOAT (дата и время в формате VARIANT) Все
'T' 8 DateTime (FoxPro) Дата и время Бинарное [01.01.4713 BC 00:00:00 .. 01.01.4294962582 AD 00:00:00[, пустое значение FLOAT (дата и время в формате VARIANT) Большие 01.01.0001 AD 00:00:00, пустое значение
'Y' 8 Currency (FoxPro) Число с фиксиро-
ванной точкой
Бинарное [-922337203685477.5808 .. +922337203685477.5807] NUMERIC[4] [-99999999999999.9999 .. +99999999999999.9999]
'@' 8 Timestamp (dBASE 7) Дата и время Бинарное [01.01.4713 BC 00:00:00 .. 01.01.4294962582 AD 00:00:00[, пустое значение FLOAT (дата и время в формате VARIANT) Большие 01.01.0001 AD 00:00:00, пустое значение
'+' 4 Autoincrement (dBASE 7) Целое число Бинарное [-2147483648 .. 2147483647] NUMERIC[10, 0] Все

Исключительные ситуации

DBF-файл dbfFile не открыт Исключение 507
В DBF-файле нет ни одной записи Исключение 511
В DBF-файле dbfFile нет поля fieldName Исключение 505
В DBF-файле dbfFile разрушена текущая запись Исключение 502
В DBF-файле dbfFile поле fieldName имеет неизвестный тип Исключение 504
В DBF-файле dbfFile поле fieldName имеет недопустимое значение Исключение 516

См. также