[转载红鱼儿]kbmmw 开发点滴:kbmMW在事务中批量执行SQL
按客户端使用事务更新多个表数据到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相关推荐
- [转载红鱼儿]kbmmw 开发点滴:kbmMW:Unknown property:indexes
利用kbmMW的QueryServices,对数据集进行提交,当改用JSON格式时,客户端提交时,会产生这个错误,明明已经更新数据库,也产生这个错误!如果换成Bin格式,则正常. 能过查看kbmMWJ ...
- [转载红鱼儿]kbmmw 开发点滴:kbmMW 命名查询(Named Query)
所谓命名查询(Named Query),指客户端的Query通过指定的名称,使用服务器端的Query操作(查.增.删.改)数据库.通过Named Query机制,实现事先在服务器端设置好SQL,达到在 ...
- [转载红鱼儿]kbmmw 开发点滴:kbmMW客户端提交事务的现场处理
多层应用中的事务处理,是必须的,如果处理不好,就会出现各种数据不同步的现象,无法投入使用.以前用ASTA实现的多层应用,是在客户端利用ASTA机 制,将要提交的数据集.执行的SQL及SP,统统生成到一 ...
- [转载红鱼儿]kbmmw 开发点滴:EarlyAuthentication
kbmmw 开发点滴:EarlyAuthentication 1.kbmMWServer.EarlyAuthentication的作用: 当为真是,当客户端请求时,先触发kbmMWServer的OnA ...
- [转载红鱼儿]kbmmw 开发点滴:TkbmMWLock用法
TStringList不是线程安全的,当我们在线程用到他是,要做保护.方法有两种,一种是用delphi自带的Critical,另外一种就是kbmMW为我们提供的TkbmMWLock类. 现在我们看看如 ...
- [转载红鱼儿]kbmmw 开发点滴:Authorization failed.
开始利用kbmmw实作项目,第一件事就是为的服务端加用户的认证.如果客户端发来的请求无法在服务器端通过认证,即客户端认证失败,会在客户端弹出一个错误提示窗口:Authorization failed. ...
- [转载红鱼儿]kbmmw 开发点滴:ErrorTable用法
TkbmMWClientQuery有一个ErrorTable属性,用于记录提交Query时返回的错误结果.当用户保存修改的业务数据,出错时,可以用ErrorTable定位出错的记录并提示错误信息. 下 ...
- [转载红鱼儿]kbmmw 开发点滴:kbmMWQuery插入记录
想利用TkbmMWUNIDACQuery插入一条记录,结果遇到问题,显示: 不允许从数据类型 sql_variant 到 varchar 的隐式转换.请使用 CONVERT 函数来运行此查询.这是什么 ...
- kbmMW均衡负载与容灾(3)(转载红鱼儿)
在kbmMW均衡负载与容灾(1)中,介绍了利用ClientTransport的OnReconnect事件,对联接的应用服务器的地址进行更换,做容灾处理.实际上,作者还给我们提供了另外一种机制,直接在C ...
- kbmMW均衡负载与容灾(2)(转载红鱼儿)
集中式均衡负载 为实现集中式均衡负载方案,需要实现两个不同的应用服务器,一个是只包含均衡负载组件再无其他内容的应用服务器,可称之为均衡负载应用服务器,下文简称LB Server,另外一个就是包含一个或 ...
最新文章
- IE提示console未定义问题解决
- Hello Cnblog!
- Leetcode之二叉树(前200道)
- lintcode 7. 二叉树的序列化和反序列化 Python代码
- 微信小程序访问豆瓣电影api400错误解决方法
- python3 html生成pdf,Python3转换html到pdf的不同解决方案
- 实习踩坑之路:Date、LocalDate和LocalDateTime的区别
- 中职计算机专业学Excel,2013年中职计算机应用专业中文Excel电子表格处理实际操作练习.doc...
- 集合框架(Vector的特有功能)
- HCIPHCIE【2019-4月-更新增加新题】221 65道新题
- 控制系统设计专题(二)——自抗扰控制算法(上)
- 哈夫曼树构造及哈夫曼编码
- Maya模型Fbx材质有贴图却不显示
- The Open Group即将举办线上线下企业架构从业者峰会
- DOS控制台及其常用命令
- 如何查看自己电脑的ip地址
- 在谷歌上安装倍速播放的插件video-speed-controller
- 什么是socket.Io
- 三星笔记本U盘重装win10系统教程
- 《引爆核能-销售演讲与呈现技巧》司铭宇
热门文章
- 新东方雅思词汇---10.1、(a)esthet
- 连接虚机中的mysql服务
- 接口与事件之图形界面的认证登录
- zoj 3640 Help Me Escape (概率dp 递归求期望)
- “工作5年,存款为0”:那些拼命的人是怎么被拖垮的?
- corrplot包与ggcorrplot相关图(二)
- lightgbm algorithm case of kaggle(上)
- 【虚拟机】关于 virtualbox 和 vmware workstation 对比的个人见解
- CentOS7---iptables
- 分布式存储ceph——(3)ceph常用命令