- 论坛徽章:
- 0
|
显示或不显示被软删除记录
---- 当DBF 数 据 库 中 的 记 录 被 软 删 除 后, 缺 省 情 况 下 在TDBGrid 等 数 据 库 构 件 中 是 看 不 见 这 些 记 录 的 . 我 们 可 以 用BDE 函 数 来 控 制 是 否 显 示DBF 数 据 库 中 被 软 删 除 的 记 录, 就 象 在Foxpro 中 利 用 语 句 Set Delete ON/OFF 那 样 .
要 用 到 的 函 数 名 为DbiSetProp, 函 数 原 型 为
function DbiSetProp ( hObj : hDBIObj; iProp : Longint; iPropValue : Longint): DBIResult;
---- 该 函 数 用 来 设 置DBI 对 象 中 某 个 属 性 的 值.
其 中,hObj 为DBI 对 象 名 称, 我 们 这 里 为 数 据 表TTable 的 句 柄;
iProp 为 属 性 名 称, 我 们 用 的 是 软 删 除 属 性curSOFTDELETEON;
iPropValue 为 属 性 值, 我 们 用True 或False 表 示 是 否 使 软 删 除 的 记 录 被 显 示 .
下 面 就 是 一 个 典 型 的 例 子 .
同 样, 应 在uses 语 句 加 上DbiTypes,DbiProcs,DbiErrs.
{显示DBF数据表中的软删除记录,DbfTable包含了数据表的信息,DeleteOn 表示是否显示,True表示显示 }
function SetDbfDelete( DbfTable : TTable ; DeleteOn : boolean ) : boolean;
var
errResult : DBIResult;
begin
result := false; {操作失败时,返回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; |
|