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中插入了這兩條新記錄。
這個方法真不錯!我想這同樣适用于伺服器端的事務控制,沒經測試。