用ClientDataSet.Delete,删除不了数据库中的数据吗?

dobad 2002-07-05 06:53:00
用ClientDataSet,如何删除服务器上的数据。
下面这段代码,运行时没错误,但就是删除不了数据库中的数据。

if (FDataSet <> nil) and (FDataSet.RecordCount > 0) then
if MessageDlg('是否确定要删除此记录', mtInformation, [mbOK, mbCancel], 0) = mrOK then
begin
FDataSet.Delete;
FDataSet.ApplyUpdates(-1);
end;
...全文
315 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
TWWH 2002-07-06
  • 打赏
  • 举报
回复
首先你该找到为什么不能删除的原因。
很好解决:先产生一个错误处理窗口(Reconcle Error Dialog),再在clientdataset的OnReconcileError事件过程中写代码.
HandleReconcileError(Dataset,UpdateKind,E)
这样,在保存出错时,就会弹出一个窗口,很清楚的显示了出错的原因。

据我的经验,不能删除好多时候是由于表没设主键引起的。
这时候,可修改应用服务器的Tdatasetprovider的updatemode属性来解决。
dobad 2002-07-05
  • 打赏
  • 举报
回复
我是自己发送sql的,楼上的方法我也试过了,还是不行。

我怀疑是数据库里面字段的问题,你们说那?
xiaomoge 2002-07-05
  • 打赏
  • 举报
回复
去掉Post , 用ApplyUpdates(0), 象这样:
if (FDataSet <> nil) and (FDataSet.RecordCount > 0) then
if MessageDlg('是否确定要删除此记录', mtInformation, [mbOK, mbCancel], 0) = mrOK then
begin
FDataSet.Delete;
FDataSet.ApplyUpdates(0);
end;
talisman 2002-07-05
  • 打赏
  • 举报
回复
你是不是自己发送sql语句返回执行结果的?
dobad 2002-07-05
  • 打赏
  • 举报
回复
一加就出错,我加过了。

出错信息:
"Dataset not in edit or insert mode"
netlib 2002-07-05
  • 打赏
  • 举报
回复
if (FDataSet <> nil) and (FDataSet.RecordCount > 0) then
if MessageDlg('是否确定要删除此记录', mtInformation, [mbOK, mbCancel], 0) = mrOK then
begin
FDataSet.Delete;
FDataSet.post;
FDataSet.ApplyUpdates(-1);
end;

2,498

社区成员

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

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