按客户端使用事务更新多个表数据到kbmMW服务器,使用TkbmMWClientTransactionResolve, 可以一次性提交多个修改的数据集到服务器端,服务器利用事务来执行数据的更新,成功,提交事务,不成功,则Rollback事务。在实际开发中,可能遇到 在更新数据集的同时,还要执行单独的SQL,处理业务逻辑。方法是:用一个单独的TkbmMWClientQuery来执行。具体用法:

kbmMWClietnQuery3.Query.Text:='Update T1 Set F2=1 where F1=1';

kbmMWClientQuery3.TransactionOperation:=mwtoExecute;//必须设置该数据集为执行要SQL

然后用kbmMWClientTransactionResolve同更新的数据集一起提交:

kbmMWClientTransactionResolver1.Resolve([kbmMWClientQuery1,kbmMWClientQuery2,kbmMWClientQuery3]);

其中,Query1,Query2为数据集,Query3为执行的SQL。

那么,如果有多条SQL要执行,该怎么办呢,象上面一样,再利用Query4、Query5...等方式提交SQL?

实际上,kbmMW为了我们提供了更好的方法,就是SQL分隔符。

叹号!:分隔多条要执行的SQL句语

等号=:分隔多条要返回结果的SQL句语(这种方法没想出应用的场景)

看一下具体的用法:

用上面的Query3同时执行两条SQL,象下面这样:

with kbmMWClientQuery3 do begin

Query.SQL.Clear;

Query.SQL.Add('!Insert into T1 (F1,F2) Values (100,'100');

Query.SQL.Add('!Insert into T1 (F1,F2) Values (101,'101');

end;

用kbmMWClientTransactionResolve提交后,会看到在T1中插入了这两条新记录。

这个方法真不错!我想这同样适用于服务器端的事务控制,没经测试。

[转载红鱼儿]kbmmw 开发点滴:kbmMW在事务中批量执行SQL相关推荐

  1. [转载红鱼儿]kbmmw 开发点滴:kbmMW:Unknown property:indexes

    利用kbmMW的QueryServices,对数据集进行提交,当改用JSON格式时,客户端提交时,会产生这个错误,明明已经更新数据库,也产生这个错误!如果换成Bin格式,则正常. 能过查看kbmMWJ ...

  2. [转载红鱼儿]kbmmw 开发点滴:kbmMW 命名查询(Named Query)

    所谓命名查询(Named Query),指客户端的Query通过指定的名称,使用服务器端的Query操作(查.增.删.改)数据库.通过Named Query机制,实现事先在服务器端设置好SQL,达到在 ...

  3. [转载红鱼儿]kbmmw 开发点滴:kbmMW客户端提交事务的现场处理

    多层应用中的事务处理,是必须的,如果处理不好,就会出现各种数据不同步的现象,无法投入使用.以前用ASTA实现的多层应用,是在客户端利用ASTA机 制,将要提交的数据集.执行的SQL及SP,统统生成到一 ...

  4. [转载红鱼儿]kbmmw 开发点滴:EarlyAuthentication

    kbmmw 开发点滴:EarlyAuthentication 1.kbmMWServer.EarlyAuthentication的作用: 当为真是,当客户端请求时,先触发kbmMWServer的OnA ...

  5. [转载红鱼儿]kbmmw 开发点滴:TkbmMWLock用法

    TStringList不是线程安全的,当我们在线程用到他是,要做保护.方法有两种,一种是用delphi自带的Critical,另外一种就是kbmMW为我们提供的TkbmMWLock类. 现在我们看看如 ...

  6. [转载红鱼儿]kbmmw 开发点滴:Authorization failed.

    开始利用kbmmw实作项目,第一件事就是为的服务端加用户的认证.如果客户端发来的请求无法在服务器端通过认证,即客户端认证失败,会在客户端弹出一个错误提示窗口:Authorization failed. ...

  7. [转载红鱼儿]kbmmw 开发点滴:ErrorTable用法

    TkbmMWClientQuery有一个ErrorTable属性,用于记录提交Query时返回的错误结果.当用户保存修改的业务数据,出错时,可以用ErrorTable定位出错的记录并提示错误信息. 下 ...

  8. [转载红鱼儿]kbmmw 开发点滴:kbmMWQuery插入记录

    想利用TkbmMWUNIDACQuery插入一条记录,结果遇到问题,显示: 不允许从数据类型 sql_variant 到 varchar 的隐式转换.请使用 CONVERT 函数来运行此查询.这是什么 ...

  9. kbmMW均衡负载与容灾(3)(转载红鱼儿)

    在kbmMW均衡负载与容灾(1)中,介绍了利用ClientTransport的OnReconnect事件,对联接的应用服务器的地址进行更换,做容灾处理.实际上,作者还给我们提供了另外一种机制,直接在C ...

  10. kbmMW均衡负载与容灾(2)(转载红鱼儿)

    集中式均衡负载 为实现集中式均衡负载方案,需要实现两个不同的应用服务器,一个是只包含均衡负载组件再无其他内容的应用服务器,可称之为均衡负载应用服务器,下文简称LB Server,另外一个就是包含一个或 ...

最新文章

  1. IE提示console未定义问题解决
  2. Hello Cnblog!
  3. Leetcode之二叉树(前200道)
  4. lintcode 7. 二叉树的序列化和反序列化 Python代码
  5. 微信小程序访问豆瓣电影api400错误解决方法
  6. python3 html生成pdf,Python3转换html到pdf的不同解决方案
  7. 实习踩坑之路:Date、LocalDate和LocalDateTime的区别
  8. 中职计算机专业学Excel,2013年中职计算机应用专业中文Excel电子表格处理实际操作练习.doc...
  9. 集合框架(Vector的特有功能)
  10. HCIPHCIE【2019-4月-更新增加新题】221 65道新题
  11. 控制系统设计专题(二)——自抗扰控制算法(上)
  12. 哈夫曼树构造及哈夫曼编码
  13. Maya模型Fbx材质有贴图却不显示
  14. The Open Group即将举办线上线下企业架构从业者峰会
  15. DOS控制台及其常用命令
  16. 如何查看自己电脑的ip地址
  17. 在谷歌上安装倍速播放的插件video-speed-controller
  18. 什么是socket.Io
  19. 三星笔记本U盘重装win10系统教程
  20. 《引爆核能-销售演讲与呈现技巧》司铭宇

热门文章

  1. 新东方雅思词汇---10.1、(a)esthet
  2. 连接虚机中的mysql服务
  3. 接口与事件之图形界面的认证登录
  4. zoj 3640 Help Me Escape (概率dp 递归求期望)
  5. “工作5年,存款为0”:那些拼命的人是怎么被拖垮的?
  6. corrplot包与ggcorrplot相关图(二)
  7. lightgbm algorithm case of kaggle(上)
  8. 【虚拟机】关于 virtualbox 和 vmware workstation 对比的个人见解
  9. CentOS7---iptables
  10. 分布式存储ceph——(3)ceph常用命令