function PackDbfTable(DbfTable: TTable): Boolean;
var
errResult: DBIResult;
begin
try
{ 如果不是以独占方式,操作失败 }
if (not DbfTable.Exclusive) or (not DbfTable.Active) then
begin
Result := False;
exit;
end;
{ 进行删除操作 }
errResult := DbiPackTable(DbfTable.dbHandle, DbfTable.handle, nil, nil, True);
{ 根据返回结果,返回成功与否的标志 }
Result := errResult = DBIERR_NONE;
except
Result := False;
end;
end;
function PackDbfTable(DbfTable: TTable): Boolean;
var
errResult: DBIResult;
begin
try
{ 如果不是以独占方式,操作失败 }
if (not DbfTable.Exclusive) or (not DbfTable.Active) then
begin
Result := False;
exit;
end;
{ 进行删除操作 }
errResult := DbiPackTable(DbfTable.dbHandle, DbfTable.handle, nil, nil, True);
{ 根据返回结果,返回成功与否的标志 }
Result := errResult = DBIERR_NONE;
except
Result := False;
end;
end;
////////////////////////////////////////////////////////
我如下代码怎么不成功 呢
//清理数据库----对DELE 进行PACK操作
procedure TSDIAppForm.N18Click(Sender: TObject);
var
ttb:ttable;
begin
ttb:=ttable.Create(self);
ttb.TableName:='base.dbf';
ttb.Exclusive:=true;
if PackDbfTable(ttb) then showmessage('清理数据库成功......');
end;