大家好:
我是个菜鸟,请问大家谁能告诉我物理删除FOXPRO表中打标记记录的详细步骤?
(代码往哪里加)。或者有DEMO的也行。
DbiPackTable我不会用。
我这样作不行。
QUERY CLOSE
QUERY.SQL.CLEAR;
query.sql.Add('delete from ABC where F1='+'''''AND F2+'='+'''''');
QUERY.Execsql;
query2.active:=false;
Table2.Exclusive := True;
DBIPackTable(Table2.DBHandle, Table2.Handle, nil, ZZDBASE, True);
关于(DBIPackTable)我什么都没有定义.有谁能告诉我的详细方法
我是个菜鸟,请问大家谁能告诉我物理删除FOXPRO表中打标记记录的详细步骤?
(代码往哪里加)。或者有DEMO的也行。
DbiPackTable我不会用。
我这样作不行。
QUERY CLOSE
QUERY.SQL.CLEAR;
query.sql.Add('delete from ABC where F1='+'''''AND F2+'='+'''''');
QUERY.Execsql;
query2.active:=false;
Table2.Exclusive := True;
DBIPackTable(Table2.DBHandle, Table2.Handle, nil, ZZDBASE, True);
关于(DBIPackTable)我什么都没有定义.有谁能告诉我的详细方法
use bde;
function DbiPackTable ( hDb : hDBIDb;hCursor : hDBICur; pszTableName : PChar;pszDriverType : PChar; bRegenIdxs : Bool ): DBIResult;---- 其中,hDb 为数据库TDatabse 的句 柄,
hCursor 为数据表TTable 的句 柄,
pszTableName 为要删除记录的数据表的名 称,
pszDriverType 为要删除记录的数据表的类 型,
bRegenIdxs 表示是否在删除记录后自动更新索引文件. ---- 在上面前四个参数中,hDb 不能为NULL .hCursor、pszTableName、pszDriverType 可以 为 NULL,但必须提供足够的信息来标识数据表的文件名称和类型,当hCursor 不为空时, pszTableName 和pszDriverType 可以为NULL;当pszTableName 为数据表的路径和文件名 时,hCursor 和pszDriverType 可以为NULL . ---- 值得注意的是,在删除记录时,如果用Table 来实现,则Table 必须以Exclusive=True 的 方式打开.下面就是一个典型的例子. 首先,应在uses语句加上DbiTypes,DbiProcs,DbiErrs.{ Pack一个DBF数据表,DbfTable包含了数据表的信息 }
function PackDbfTable( DbfTable : TTable ) : boolean;
var
errResult : DBIResult;
begin
if not DbfTable.Exclusive then {如果不是以独占方式,操作失败 }
begin
result := false;
exit;
end;
{进行删除操作 }
errResult := DbiPackTable( DbfTable.dbHandle, DbfTable.handle, NIL, NIL, true ); {根据返回结果,返回成功与否的标志 }
if errResult = DBIERR_NONE then {没有错误,操作成功 }
result := true
else{没有错误,操作失败 }
result := false;
end;