我在用unidac時發現乙個很奇怪的問題,我用乙個tuniconnection控制項連線乙個事務控制項。在乙個程式中有兩個uniquery,乙個負責查詢並得到資料uniq_show,乙個用於對資料的插入和更新uniq_do。可是,我在用uniq_do對資料進行更新,並用事務控制項進行提交後,竟然使uniq_show控制項關閉了。真是很奇怪,我也不知道是什麼原因,也不知道怎麼解決。
後來,我就再引入了另乙個tuniconnection控制項,分別讓這兩個uniquery控制項連線。也即是乙個tuniconnection負責查詢,乙個負責提交資料。算是解決了提交資料與查詢資料時相互干擾的問題。
不過,在解決問題之前,我發現另乙個問題。之前我是用事務控制項來提交資料的。第乙個tuniconnection控制項就連線了事務控制項,本來第二個tuniconnection控制項我想讓它的事務屬性為預設就好。可是,就是不行,也就是說,程式一執行就出錯。最後沒有辦法,乾脆不要事務控制項了,直接用tuniconnection控制項預設的事務處理就好了。不知道加不加事務控制項的差別在**。
下面是事務的一些資料與**:
事務:
tuniconnection通過starttransaction, commit, rollback等方法來控制本地事務,判斷乙個事務是否開啟用intransaction。
**:
with a01f do
begin
tryif not uniconn.intransaction then
uniconn.starttransaction;
uniscript.sql.text:=strsql;
uniscript.execute;
uniconn.commit;
except
on e: exception do
begin
uniconn.rollback;
showmessage('提交引數時出錯!錯誤**:'+#13+e.message);
end;
end;
end;
unidac使用演示
unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,grids,dbgrids,db,dbaccess,uni,memds,unipro...
unidac記錄日誌
unidac記錄日誌 1 sql日誌記錄 tunisqlmonitor的onsql事件裡面記錄sql日誌,演示 如下 procedure tfrmdb.unisqlmonitor1sql sender tobject text string flag tdatraceflag begin sflog...
unidac記錄日誌
unidac記錄日誌 1 sql日誌記錄 tunisqlmonitor的onsql事件裡面記錄sql日誌,演示 如下 procedure tfrmdb.unisqlmonitor1sql sender tobject text string flag tdatraceflag begin sflog...