起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 244|回复: 4

【结贴】流转 - 数据集代理 - Query更新数据库

[复制链接]
发表于 2009-9-14 11:29:49 | 显示全部楼层 |阅读模式
请教:
在afterFlowOut(){
       DatasetBroker.........//对数据集的更新操作(表1)
    updateXMTask()....//insert语句到表中(表2),TQuery的声明在函数里

}
按照alang的分享:如果用Query修改其他数据表中的数据,也可以跟流程放在一个事务中,只要指定Query对应的Transaction是流程的事务就可以了
比如:
procedure TMainForm.FlowBroker1AfterFlowOut(Sender: TObject; Command: TFlowOutCommand);
var
  lQry: TQuery;
  lConn: TConnection;
begin
  lQry := TQuery.Create(nil);
  lConn := TConnection.Create(nil);
  try
    lConn.ConnectionString := 'DATABASEURL=Biz:\OPERATION\OPERATIONDB.DATABASE';
    lConn.Transaction := FlowBroker1.FlowControl.FlowManager.Transaction;
    lQry.Connection := lConn;
    lQry.CommandText := 'Update CRM_PRODUCT set UOM=''1'' where PRODUCTID='''+DataSetBroker1.DataSet.FieldByName('PRODUCTID').AsString+'''';;
    lQry.Execute;
  finally
    lQry.Free;
    lConn.Free;
  end;
end;
问题:1、版本2617,支持alang分享的事务控制吗。
      2、如果支持,但是我的Query是在函数中create的,支持吗。如果不支持,我在afterFlowOut声明Query,再把事物和流程的事务按照alang那样的语句写之后,把Query作为参数传到函数updateXMTask()中,可以吗。
回复

使用道具 举报

 楼主| 发表于 2009-9-14 11:39:48 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-14 12:02:45 | 显示全部楼层
提醒,如果不及时给反馈问题的帐号解决问题,扣你的薪水。^_^ 开个玩笑  回一个贴吧
回复 支持 反对

使用道具 举报

发表于 2009-9-14 13:38:37 | 显示全部楼层
楼主,你这玩笑开大了,别扣薪水呀。

只要保证在一个事务中,应该是可以的。
具体你可以做一个简单的测试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-14 13:56:25 | 显示全部楼层
好的 俺试试 谢谢。结贴。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-16 05:42 , Processed in 0.041572 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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