(整理自网络)
示例:
var table1: TTable;
begin
table1 := ttable.create(self);
with table1 do
begin
active := false;
DatabaseName := 'c:\'; {预定义的别名数据库工作区名}
tablename := 'CiKu.dbf'; {将定义的数据库名}
tabletype := ttDbase;
{数据库类型,可为ttParadox,ttDbase,ttFOXPRO,ttASCII
如果要让 dbf 支持中文字段
1.打开 BDE Administrator 窗体后在Database页上选择Dbase,在Definition页中将
Type项设为Standard;将Default Driver项设为Dbase;
2. 选择Configration页,在Drivers的Native项中选择Dbase,在Definition页中将T
ype项设为File;将Langdriver项设为DBASE CHS CP936;将Level项设为5。
3. 完成上述工作后,在Object菜单中选择Save as Configration,按出现的对话框要
求将以上的设置保存好。至此,数据库的基本配置工作就完成了,我们就可以进行下面的
工作了。}
with fielddefs do
begin
clear;
add('编码', ftstring, 2048, false);
add('词汇', ftstring, 1024, false);
add('词频', ftinteger, 0, false);
add('字数', ftinteger, 0, false);
end;
{使用TTable.IndexDefs.Add()方法定义索引。Add有三个参数:索引名:string; 索引字段名:string; 索引类型:TIndexOptions;
with indexdefs do
begin
clear;
Add('index1', '词频',[ixprimary]);
end;
加索引后VFP打不开 dbf 文件。不加就能打开。看delphi源码
if FileExists(ChangeFileExt(Name, '.FPT')) or
FileExists(ChangeFileExt(Name, '.CDX')) then
Result := ttFoxPro else
Result := ttDBase;
可以发现 delphi 以索引文件判断 DBase 和 FoxPro 。
}
createtable;
end;
end;
***********************************************************************************
附 delphi 的TTable 的属性 GetTable
TTable.GetTableType
function TTable.GetTableType: TTableType;
var
Name, Extension: string;
FDb: Boolean;
begin
Result := ttDefault;
FDb := SetDBFlag(dbfDatabase, True);
try
if not Database.IsSQLBased then
if TableType = ttDefault then
begin
Extension := ExtractFileExt(TableName);
if CompareText(Extension, '.DB') = 0 then Result := ttParadox
else if CompareText(Extension, '.DBF') = 0 then
begin
Name := GetFileName;
if FileExists(ChangeFileExt(Name, '.FPT')) or
FileExists(ChangeFileExt(Name, '.CDX')) then
Result := ttFoxPro else
Result := ttDBase;
end
else if CompareText(Extension, '.TXT') = 0 then Result := ttASCII
end else Result := TableType;
finally
if not FDb then SetDBFlag(dbfDatabase, False);
end;
end;