天天看點

[轉載紅魚兒]kbmmw 開發點滴:kbmMW在事務中批量執行SQL

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中插入了這兩條新記錄。

這個方法真不錯!我想這同樣适用于伺服器端的事務控制,沒經測試。