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 | Дата | Текстовое | [ |
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) | Дата и время | Текстовое | [ |
FLOAT (дата и время в формате VARIANT) | Все |
'T' | 8 | DateTime (FoxPro) | Дата и время | Бинарное | [ |
FLOAT (дата и время в формате VARIANT) | Большие |
'Y' | 8 | Currency (FoxPro) | Число с фиксиро- ванной точкой |
Бинарное | [ |
NUMERIC[4] | [ |
'@' | 8 | Timestamp (dBASE 7) | Дата и время | Бинарное | [ |
FLOAT (дата и время в формате VARIANT) | Большие |
'+' | 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 |