zoukankan      html  css  js  c++  java
  • [转载红鱼儿]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中插入了这两条新记录。

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

  • 相关阅读:
    flask-bootstrap
    SSH
    Spring ContextLoaderListener与DispatcherServlet所加载的applicationContext的区别
    加载spring 的方法。
    简约的form表单校验插件
    javascript 大数值数据运算
    【解题报告】 Task
    【解题报告】 POJ1050 To the Max
    。。。
    【解题报告】 POJ2054 给树染色
  • 原文地址:https://www.cnblogs.com/xalion/p/2711006.html
Copyright © 2011-2022 走看看