Как создать и заполнить файл 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
|