一个applyupdates的问题!

waeghtmark525 2004-11-17 06:36:52
SQL 2000 server
SocketConnection
ClientDataset1;
ClientDataset2;
ClientDataset3;
最近检查删除操作,
ClientDataSet1->Delete();
ClientDataSet1->ApplyUpdates();
if(ClientDataset1->ChangeCount>0)
{
MessageDlg("数据未能保存!",mtError,TMsgDlgButtons()<<mbOK,0);
return;
}
发现老是提示数据未能保存,只有在之前更新ClientDataSet1之后执行操作才能保存!
各位,是啥子原因呢??

...全文
156 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lonelywolf1899 2004-11-19
  • 打赏
  • 举报
回复
Delete()只能删除当前纪录,不能清空;

要清空,就要用h98458(零点起飞)的方法
waeghtmark525 2004-11-18
  • 打赏
  • 举报
回复
难道每次删除一笔记录之前必须更新,然后找到该记录,最后删除
applyupdates 吗?
h98458 2004-11-18
  • 打赏
  • 举报
回复
你试一试这样:
ClientDataSet1->First();
while(!ClientDataSet1->Eof)
{
ClientDataSet1->Delete();
ClientDataSet1->Next();
}
}
ClientDataSet1->ApplyUpdates(-1);
laisf 2004-11-18
  • 打赏
  • 举报
回复
ClientDataSet1->Delete();
if(ClientDataSet1->ApplyUpdates(0)>0)
{
MessageDlg("数据未能保存!",mtError,TMsgDlgButtons()<<mbOK,0);
return;
}
waeghtmark525 2004-11-18
  • 打赏
  • 举报
回复
一定要直接用SQL吗?

可以!

但是这个问题是何原因呢?使用delete如何预防?
h98458 2004-11-17
  • 打赏
  • 举报
回复
ClientDataSet1->Delete();
我也这样用过,好像也删除不得完
那为什么不用SQL语句删除呢?
直接这样:delete …………
waeghtmark525 2004-11-17
  • 打赏
  • 举报
回复
sorry!
ClientDataSet1->ApplyUpdates(0);

我的是这样的!
  • 打赏
  • 举报
回复
ClientDataSet1->Delete();
if(ClientDataset1->ChangeCount>0)
{
ClientDataSet1->ApplyUpdates(0);
}
得到答案后请提交FAQ

1,178

社区成员

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

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