执行了这句语后(Query1.SQL.Add('delete from "e:/stockacc.dbf"'Query1.ExecSQL;);,如何才能真正删除

  • 主题发起人 主题发起人 huangbaili
  • 开始时间 开始时间
H

huangbaili

Unregistered / Unconfirmed
GUEST, unregistred user!
执行了这句语后(Query1.SQL.Add('delete from "e:/stockacc.dbf"'Query1.ExecSQL;);,如何才能真正删除FOX数据库中的记录。而不仅仅是做个删除标记?谢谢。(50分)<br />执行了这句语后(Query1.SQL.Add('delete from "e:/stockacc.dbf"'Query1.ExecSQL;);,
如何才能真正删除FOX数据库中的记录。而不仅仅是做个删除标记?谢谢。
 
用Emptytable试试看!
 
fox数据库语言中有命令“PACK”用于彻底删除记录,试试
 
pack不行的,会把所有制的记录全部删掉。
 
不会的,PACK 命令就是用来压缩数据库的,与ZAP命令不一样
 
可我用的SQL语句呀。怎么实现呢?
 
找一下旧贴,选已答,站内检索填“物理删除”,多的是答案。
 
你可以调用BDE提供的函数 dbiPackTable
格式:
dbiPackTable(HDb:hDBIDb;hCursor:HDBICur;pszTableName:PChar;
pszDriverType:PChar;bRegenIdxs:Boolean):DBIResult stdcall
完全能实现这个功能
如有不明白的 QQ:173835654
 
table2.Open;
application.ProcessMessages ;
dbipacktable(table2.dbhandle,table2.handle,nil,nil,true);
application.ProcessMessages ;

要在USES 中加上 dbitypes,
 
dbiPackTable
看一下delphi的help 上面有例子
 
后退
顶部