powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с DBF
7 сообщений из 7, страница 1 из 1
Работа с DBF
    #39465422
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Подскажите чем создать DBF заданной структуры и размерностью полей.
Использовал TDBF, но в нем для поля Numeric(9,2) нельзя задать точность.
Перешел на Halcyon. Точную структуру и размерность полей могу задать, но у него длинна имени поля - 10 символов, а мне надо 12.
В общем чтобы долг не описывать:
Нужно создать DBF вот такой структуры (проблемные поля помечены !!!):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
ID_ISSUE;N;3;0
CASE_NUMBER;N;10;0    !!!
NUM_KSS;N;10;0
PN;C;10;0
DOC_TYPE;N;1;0
DOC_SER;C;7;0
DOC_NOM;C;9;0
LN;C;70;0
NM;C;50;0
FTN;C;50;0;
BIRTHDAY;D;8;0
PERIOD_START;D;8;0   !!!
PERIOD_STOP;D;8;0   !!!
OZN_SUB;N;1;0
...
Рейтинг: 0 / 0
Работа с DBF
    #39465443
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Работа с DBF
    #39465458
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush,

Поля с именем более 10 символов - с помощью Microsoft Visual FoxPro OLE DB Provider.

Дело в том, что в "формате DBF" одно поле таблицы описывается ровно 32 байтами.
Из них на имя поля отводится 10 байт. Люминь.

В Visual FoxPro обошли это ограничение. Если работаешь с "контейнером базы" данных, то длинные (вроде до 127 символов) имена полей хранятся в самом контейнере. А в файле таблички - все равно 10 байт.

Если будешь экспортировать такую табличку из контейнера в отдельный файл DBF, имя поля все равно будет 10 символов.
...
Рейтинг: 0 / 0
Работа с DBF
    #39465683
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush,

BDE?
...
Рейтинг: 0 / 0
Работа с DBF
    #39465685
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДДело в том, что в "формате DBF" одно поле таблицы описывается ровно 32 байтами.
Из них на имя поля отводится 10 байт. Люминь.
DBase 7 с этим не согласен http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm
...
Рейтинг: 0 / 0
Работа с DBF
    #39465688
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanчччДДело в том, что в "формате DBF" одно поле таблицы описывается ровно 32 байтами.
Из них на имя поля отводится 10 байт. Люминь.
DBase 7 с этим не согласен http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm
TDbf, кстати, позволяет указывать версию:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TDbf.SetTableLevel(const NewLevel: Integer);
begin
  if NewLevel <> FTableLevel then
  begin
    // check validity
    if not ((NewLevel = 3) or (NewLevel = 4) or (NewLevel = 7) or (NewLevel = 25)) then
      exit;

    // can only assign tablelevel if table is closed
    CheckInactive;
    FTableLevel := NewLevel;
  end;
end;
...
Рейтинг: 0 / 0
Работа с DBF
    #39466144
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.06.2017 8:56, wadman пишет:
> DBase 7 с этим не согласен

это некрофилы маргиналы.
не стоит на них ориентироваться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с DBF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]