起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: bqh

【结帖】关于applyupdatas[请求]**

[复制链接]
发表于 2008-8-6 08:32:12 | 显示全部楼层
7楼的代码写到哪个控件的哪个事件了呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-6 08:34:15 | 显示全部楼层
写在数据集,业务信息层。在流程结束时调用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-6 08:39:06 | 显示全部楼层
DataSetIMO_List2.Close;
中间有SQL语句的
  DataSetIMO_List2.Open;
  if (DataSetIMO_List2.RecordCount <> 0) then
  begin
    DataSetIMO_List2.First;
    for i := 0 to DataSetIMO_List2.RecordCount-1 do
      begin
        MOTENGINENO := DataSetIMO_List2.FieldByName  ('MOTENGINENO').AsString;
        DataSetmaterinfo3.Close;
        DataSetmaterinfo3.SQL.Clear;
        S_sql1 := 'select * ' + 'from MATERINFO where version_n ='''+ k + '''' +' AND ENGINENO = '+ MOTENGINENO ;
        DataSetmaterinfo3.SQL.Text := S_sql1;
        DataSetmaterinfo3.Open;
        if not (DataSetmaterinfo3.State in
               [Business.Data.TDataSetState.dsEdit, Business.Data.TDataSetState.dsInsert]) then  DataSetmaterinfo3.Edit;
if()then //根据条件才赋值
    DataSetmaterinfo3.FieldByName(matfield).value:=DataSetIMO_List2.FieldByName(sonfield).asstring;
       End;
       DataSetmaterinfo3.post;
    Datasetmaterinfo3.applyupdates;//会报错“正在提交”
        DataSetIMO_List2.Next;
      end;
// DataSetmaterinfo3.ApplyUpdates;
回复 支持 反对

使用道具 举报

发表于 2008-8-6 08:53:44 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-8-6 08:54:54 | 显示全部楼层
系统默认把流程和业务数据的提交放在了一个事务中。
而一个数据集在同一个事务中不允许提交两次。

楼主的问题是:
同一个数据集,多次修改sql语句,并进行了提交。违反了上述约束。

解决方法:
1、不要多次修改sql语句进行查询,可以使用多个数据集对象;或者一个数据集查出所有需要修改的数据,然后使用客户端过滤。修改后执行post,跳出循环后,只需要执行一次applyupdates

2、使用TQuery直接执行Update语句提交数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-6 09:19:29 | 显示全部楼层
非常感谢!我会谨记的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-6 09:25:46 | 显示全部楼层
顺便问一下,客户端过滤在哪里设置啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-6 09:33:41 | 显示全部楼层
随便问一下客户端过滤可以设置吗?还是只能用filter语句?
回复 支持 反对

使用道具 举报

发表于 2008-8-6 09:59:14 | 显示全部楼层
客户端过滤一般就说采用filter,
还有就说OnFilterRecord事件(这种一般是做复杂条件的过滤)
还有一个是DataGrid的列头的过滤()
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-6 12:30:54 | 显示全部楼层
谢谢!结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 10:46 , Processed in 0.038936 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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