何 何冲 Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-28 #1 在Delphi4 或C++ Builder4中如何物理删除(即彻底删除)VFoxpro库中的记录?
R rss Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-28 #2 纯Dbase库好办,BDE帮助里有例子. VFP库可能需要ODBC API来办了.查一查.
C cmldy Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-28 #3 请看 http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=107330
F fstao Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-28 #4 太简单了,你的E_Mail是什么?我E_mail给你一个Demos。 我的是fstao@126.com
苯 苯苯 Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-29 #6 在Delphi程序中,用TTable或TQuery构件的方法Delete执行删除记录的操作时, 执行的是软删除,即相当于Foxpro中的"Set Delete Off"的效果,仅将记录用星号"*"标记为删除,实际并没有数据库中进行物理上的删除.要进行真正的删除,需要进行Pack Table的操作. 在Delphi程序中真正删除记录,需要调用BDE函数,函数名为DbiPackTable,函数原型为: 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
在Delphi程序中,用TTable或TQuery构件的方法Delete执行删除记录的操作时, 执行的是软删除,即相当于Foxpro中的"Set Delete Off"的效果,仅将记录用星号"*"标记为删除,实际并没有数据库中进行物理上的删除.要进行真正的删除,需要进行Pack Table的操作. 在Delphi程序中真正删除记录,需要调用BDE函数,函数名为DbiPackTable,函数原型为: 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
苯 苯苯 Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-29 #7 另外还应该值得注意的是,在用Table来实删除记录时,则Table必须以Exclusive=True的方式打开.
L lha Unregistered / Unconfirmed GUEST, unregistred user! 2000-01-30 #8 以C++Builder代码能清除当前数据库中以打上删除符号的纪录。 void _fastcall TForm1::Button1Click(TObject *Sender) { Table1->Active=false; Table1->Exclusive=true; Table1->Active=true; if(DbiPackTable(Table1->DBHandle,Table1->Handle, NULL,szDBASE,true)!=DBIERR_NONE ShowMessage("Delete ERROR!"); } 请你转化为Delphi即可
以C++Builder代码能清除当前数据库中以打上删除符号的纪录。 void _fastcall TForm1::Button1Click(TObject *Sender) { Table1->Active=false; Table1->Exclusive=true; Table1->Active=true; if(DbiPackTable(Table1->DBHandle,Table1->Handle, NULL,szDBASE,true)!=DBIERR_NONE ShowMessage("Delete ERROR!"); } 请你转化为Delphi即可
Y yzk Unregistered / Unconfirmed GUEST, unregistred user! 2000-02-16 #9 1.在uses 中加入DBITYPES,DBIPROCS,DBIERRS 2.物理删除 Table1.close; dbipacktable(Table1.dbHandle,Table1.Handle,'TableName.dbf',xzDBASE,TRUE); Table1.open;
1.在uses 中加入DBITYPES,DBIPROCS,DBIERRS 2.物理删除 Table1.close; dbipacktable(Table1.dbHandle,Table1.Handle,'TableName.dbf',xzDBASE,TRUE); Table1.open;