Цитата(Jafa @ 8.2.2010, 19:49 ) | | подключаюсь к dbf-таблице с помощью АДО и ODBC драйвера, могу ли я узнать структуру нужной мне таблицы (количество полей, имена полей, тип полей)? |
У этих объектов есть свойства - через них и узнавай количество полей, названия.
| Цитата | СТРУКТУРА DBF-ФАЙЛОВ.
1. Структура dbf-файла. В начале dbf-файла находится заголовок. В нём содержиться следующая информация:
Байт 00 - всегда значение 03.
Байт 01 - год последней модификации файла; если 2010, то в байте сохраняется 10. Байт 02 - месяц последней модификации файла. Байт 03 - день последней модификации файла.
Байты 04-07 - количество записей в файле. Байты 08-09 - длина заголовка, т.е. смещение относительно начала файла, с которого начинается непосредственно содержание записей. Байты 09-10 - длина одной записи. Начиная с байта 32 храниться информация о полях. Информация об одном поле занимает 32 байта и содержит:
Байты 00-09 - имя поля.
Байт 10 - всегда значение 00.
Байт 11 - тип поля; "С" - character, "N" - numeric, "F" - float, "D" - date, "L" - logical, "M" - memo, "G" - general, "P" - picture.
Байт 12-15 - смещение относительно начала записи, с которого начинается содержимое поля.
Байт 16 - длина поля; для полей типа N и F длина включает и десятичную точку.
Байт 17 - для полей типа N и F количество знаков после десятичной точки.
После заголовка находится байт со значением 0Dh - это метка конца заголовка. В начале каждой записи находится байт-метка. Если в нём записан символ "*" (2Ah), то запись помечена на удаление. Иначе в этом байте записан пробел (20h). Байт 1Ah - метка конца файла. Если в файле нет ни одной записи, метка конца файла не ставится. В полях типа C, N, F, D, L вся информация храниться в символьном виде. В полях типа N и F символьная строка сдвинута в конец поля. В полях С строка начинается прямо с начала поля. В полях D сначала записан год (4 символа), затем месяц (2 символа) и число (2 символа). Длина поля D всегда 8 символов (байт). Длина поля L всегда 1 символ (байт) и содержит либо "F"- ложь, либо "T" - истина. Поле "M" содержит номер кластера в файле с расширением .fpt, в котором храниться информация поля. Номер кластера записан в виде символьной строки, сдвинутой в конец поля. Длина поля "M" всегда 10 байт.
|
Цитата(Jafa @ 8.2.2010, 19:49 ) | | хоть капать |
кОпать
Сам же ответил на вопрос:
Цитата(Jafa @ 8.2.2010, 19:49 ) | | в функциях C++Builder)? |
|