FAQ VCL
Компоненты\DBF

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как создать и заполнить файл DBF?

uses
  dbf, dbf_fields, {dbf_common,} Data.DB;

procedure TForm1.Button1Click(Sender: TObject);
var
  Table: TDbf;
  Buffer: TValueBuffer;
  FieldDef: TDbfFieldDef;
  FieldDefs: TDbfFieldDefs;
begin
   Table := TDbf.Create(nil);
   FieldDefs := TDbfFieldDefs.Create(nil);

   try
      Table.TableName := 'd:\1\temp.dbf';
      Table.TableLevel := 4;

      // Добавляем поле
      FieldDef := FieldDefs.AddFieldDef;
      FieldDef.FieldName := 'f1';
      FieldDef.FieldType := ftFloat;
      FieldDef.Size := 9;
      FieldDef.Precision := 3;
      // или так
      // FieldDefs.Add('f1', ftFloat, 15);

      Table.CreateTableEx(FieldDefs);

      // Устанавливаем значение
      Table.Open;
      Table.Append;

      SetLength(Buffer, SizeOf(Double));
      TDBBitConverter.UnsafeFrom<Double>(123.4, Buffer);
      Table.SetFieldData(Table.FieldByName('f1'), Buffer, True);
      // или так
      // Table.FieldByName('f1').Value := 123.4;
      // или так (массивом)
      // Table.SetFields([123.4]);

      Table.Post;
   finally
      FieldDefs.Free;
      Table.Close;
      Table.Free;
   end;
end;

// Нулевой байт файла DBF содержит номер версии формата
// и битовые признаки дополнительных файлов:
// • $02 - dBase II и FoxBASE
// • $03 - FoxBASE+ или Dbase III+ без полей типа «memo»
// • $30 - Visual FoxPro
// • $31 - Visual FoxPro с автоинкрементом
// • $32 - Visual FoxPro с полями типов Varchar и/или Varbinary
// • $43 - dBASE IV файл таблиц SQL без полей типа «memo»
// • $63 - dBASE IV системный файл SQL без полей типа «memo»
// • $83 - FoxBASE+ или Dbase III+ с полями типа «memo»
// • $8B - dBASE IV файл таблиц SQL с полями типа «memo»
// • $CB - dBASE IV системный файл SQL с полями типа «memo»
// • $F5 - FoxPro до версии 2.6 с полями типа «memo»
// • $E5 - Clipper Six с файлом SMT (содержит значения полей типа «memo»)
// • $FB - FoxBASE

При использовании материала - ссылка на сайт обязательна