起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: allentime

【结】数据集applyupdates时报错**

[复制链接]
 楼主| 发表于 2008-8-25 10:42:11 | 显示全部楼层
从数据集是自定义数据集,dsbBXKXX.DataSet.ApplyUpdates(false);用这句也不得,报同样的错
回复 支持 反对

使用道具 举报

发表于 2008-8-25 10:45:17 | 显示全部楼层
在事件中,你写过代码吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-25 10:48:38 | 显示全部楼层
保存的beforeaction事件中有写代码
回复 支持 反对

使用道具 举报

发表于 2008-8-25 10:59:26 | 显示全部楼层
贴上来看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-25 11:00:36 | 显示全部楼层
在beforeaction事件中用query直接更新数据表,保存后不流转,点工作台右上角的关闭按钮,提示数据已更改,是否需要保存,点是的话,报5楼的错误,否的话,这个任务就没有了,不在代办任务中。
直接更新数据表后,怎么实现关闭窗口后在代办任务中有新增的任务呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-25 11:04:22 | 显示全部楼层
BizActnConsts.ActionDataSetSave :  // 保存
    begin
      if dsbBXKXX.DataSet.State in [TDataSetState.dsEdit,TDataSetState.dsInsert] then
        begin
         dsbBXKXX.DataSet.Post;
        end;

      if dsbKHXXSJJ.DataSet.State in [TDataSetState.dsEdit,TDataSetState.dsInsert] then
        begin
         dsbKHXXSJJ.DataSet.Post;
        end;

      str1:= dsbKHXXSJJ.DataSet.FieldByName('KHMC').AsString;
      str2:= dsbBXKXX.DataSet.FieldByName('DLSMC').AsString;
      //保修日期
      str3:=sysutils.DateTimeToStr(
        dateutils.IncDay(dsbBXKXX.DataSet.FieldByName('XSRQ').AsDateTime,365 ));

    //保存前校验
      ......(保存的时候检验)
    //将客户编号、客户名称、联系人保存到整机信息表中

      dsbBXKXX.DataSet.Edit;
      dsbBXKXX.DataSet.FieldByName('KHMC').AsString :=dsbKHXXSJJ.DataSet.FieldByName('KHMC').AsString;
      dsbBXKXX.DataSet.FieldByName('LXR').AsString :=dsbKHXXSJJ.DataSet.FieldByName('LXR').AsString;
      dsbBXKXX.DataSet.FieldByName('BXRQ').AsString :=str3;
      dsbBXKXX.DataSet.FieldByName('WXZXBH').AsString:=lDept;
      dsbBXKXX.DataSet.Post;
      dsbBXKXX.DataSet.ApplyUpdates;(这步报错)

   
   //通过客户名称判断该客户信息是否在客户表中存在,若不存在将客户信息保存到客户表中
   ...... (将客户信息用query直接更新数据表)

      Accept:=false;
回复 支持 反对

使用道具 举报

发表于 2008-8-25 11:35:40 | 显示全部楼层
楼主,代码中只处理了dsInsert, 将删除和更新动作也处理一下.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-25 11:42:47 | 显示全部楼层
最初由 gaihl 发布
[B]楼主,代码中只处理了dsInsert, 将删除和更新动作也处理一下. [/B]


删除和更新怎么处理?DataSet有删除和更新的状态?
回复 支持 反对

使用道具 举报

发表于 2008-8-25 11:47:47 | 显示全部楼层
最初由 allentime 发布
[B]更新模式选“主键”,重新生成了“提交SQL语句 ”,把insert和delete语句删除,只留update语句
以下省略...... [/B]

不要留update删insert和delete语句,要不就全删除,要不用全生成sql语句.  试试看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-26 08:19:07 | 显示全部楼层
找到原因了,不是保存这的问题,麻烦你们了!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-21 02:59 , Processed in 0.041926 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表