http://www.csdn.net/expert/Topic/321/321816.shtm
http://www.csdn.net/expert/Topic/286/286689.shtm
http://www.csdn.net/expert/Topic/201/201452.shtm
//使用BDE API函数
uses
BDE;
var
CompressTable:TTable;
begin
CompressTable:=TTable.Create(nil);
Screen.Cursor:=crHourGlass;
Path:=ExtractFileDir(FileName);
DBFileName:=ExtractFileName(FileName);
CompressTable.DatabaseName:=Path;
CompressTable.TableName:=DBFileName;
CompressTable.Exclusive :=true;
CompressTable.Open;
dbiPackTable(CompressTable.DBHandle,CompressTable.Handle,nil,szDBASE,true);
CompressTable.Free;
Screen.Cursor:=crDefault;
http://www.csdn.net/expert/Topic/286/286689.shtm
http://www.csdn.net/expert/Topic/201/201452.shtm
//使用BDE API函数
uses
BDE;
var
CompressTable:TTable;
begin
CompressTable:=TTable.Create(nil);
Screen.Cursor:=crHourGlass;
Path:=ExtractFileDir(FileName);
DBFileName:=ExtractFileName(FileName);
CompressTable.DatabaseName:=Path;
CompressTable.TableName:=DBFileName;
CompressTable.Exclusive :=true;
CompressTable.Open;
dbiPackTable(CompressTable.DBHandle,CompressTable.Handle,nil,szDBASE,true);
CompressTable.Free;
Screen.Cursor:=crDefault;
procedure PackTable(Table: TTable);
var
Props:CURProps;
begin
if not Table.Active then
raise EDatabaseError.Create('数据表必需已经打开');
if not Table.Exclusive then
raise EDatabaseError.Create('数据表必需以独占方式打开');
Check(DbiGetCursorProps(Table.Handle, Props));
if (Props.szTableType = szDBASE) then
Check(DbiPackTable(Table.DBHandle, Table.Handle, nil, szDBASE, True))
else
raise EDatabaseError.Create('Table必需是dBASE或FoxPro类型');
Table.Open;
end;