Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как узнать структуру dbf-таблицы? 
:(
    Опции темы
Jafa
  Дата 8.2.2010, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.6.2008

Репутация: нет
Всего: нет



подключаюсь к dbf-таблице с помощью АДО и ODBC драйвера, могу ли я узнать структуру нужной мне таблицы (количество полей, имена полей, тип полей)? В каком направлении хоть капать (в свойствах драйвера или в функциях C++Builder)?

Это сообщение отредактировал(а) Jafa - 8.2.2010, 18:49
PM MAIL   Вверх
Voldemar2004
Дата 10.2.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: нет
Всего: 23



Цитата(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)?




--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.