ADO方式如何清空dbf表?

annkie 2003-06-14 10:57:44
bde下有个DbiPackTable函数,ado怎么办?
另外,如果我先用adoquery删除dbf表的记录(没有彻底清空),断开连接,然后使用另外的控件对其进行更新操作,程序报错:无法锁定数据表,正在被机器上的某某用户使用,如何避免呢?
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
annkie 2003-06-18
  • 打赏
  • 举报
回复
这样不行啊,只能给记录做上被删除的标志,记录仍然在的。
while(!query->Eof)
{
query->Delete();
}
hong668 2003-06-16
  • 打赏
  • 举报
回复
use delete function for while ,that's ok
romancool 2003-06-16
  • 打赏
  • 举报
回复
清空记录,不能用for循环吗~?

程序报错:无法锁定数据表,正在被机器上的某某用户使用,如何避免呢?
应该是某个地方把库打开了,没关闭。

菜鸟,学习中。
888888888888 2003-06-15
  • 打赏
  • 举报
回复
关注
annkie 2003-06-15
  • 打赏
  • 举报
回复
up
annkie 2003-06-15
  • 打赏
  • 举报
回复
代码如下,问题依旧!
//清空表
//DbiPackTable(Table1->DBHandle,Table1->Handle,NULL,szDBASE,true)!=DBIERR_NONE)

AnsiString sConnStr = "PROVIDER=MSDASQL;DRIVER={Microsoft Visual Foxpro Driver};SourceDB=";
sConnStr += sFilePath;
sConnStr += ";SourceType=DBF";
TADOConnection *conn = new TADOConnection(NULL);
conn->ConnectionString = sConnStr;
conn->Open();
conn->Execute("Delete From " + sFileName );
conn->Close();
delete conn;
conn = NULL;


//添加数据
AnsiString sql = "insert into dwxq in \"";
sql += sFilePath;
sql += "\"[dbase 5.0;] Select * From view_dwxq";
if(Flag == 0)//研究生
{
sql += " where xldm ='01' or xldm ='11'";
}
else //本专科生
{
sql += " where xldm ='31' or xldm ='61'";
}
adocnExport->Execute(sql);//错误定位在这里。

猎人66 2003-06-15
  • 打赏
  • 举报
回复
可能是因为连接没有断开吧?ADOConnection1->Close();
阿鹏兄 2003-06-15
  • 打赏
  • 举报
回复
用共享方式打开不行吗?

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧