uses DbiTypes,DbiProcs,DbiErrs.
显示DBF数据表中的软删除记录,
DeleteOn 表示是否显示,True表示显示
function SetDbfDelete( DbfTable :
TTable ; DeleteOn : boolean ) : boolean;
var
errResult : DBIResult;
begin
result := false;
{如果数据表没有打开,则操作失败 }
if ( not DbfTable.active ) then exit;
{进行设置显示操作 }
errResult := DbiSetProp( hDBIObj(DbfTable.Handle),
curSOFTDELETEON,
LongInt( DeleteOn ));
if errResult = DBIERR_NONE then
{没有错误,则操作成功 }
begin
result := true;
DbfTable.refresh;
end;
end;
恢复被软删除的记录
function UndeleteRecord
( DbfTable : TTable ) : boolean;
begin
Result := false;
with DbfTable do
begin
{如果数据集处于非
活动状态,则执行失败 }
if not active then exit;
{使数据集的当前记录与
实际的当前记录的位置一致 }
UpdateCursorPos;
{恢复被软删除的记录 }
if DBIERR_NONE < > DbiUndeleteRecord( Handle ) then
exit;{发生错误,操作失败 }
result := true; {操作成功 }
end;
end;
注:摘自王发军文章,本人没有测试过。