表一:salesman
salesid salesname
1 張三
2 李四
表二:sales
orderid salesid
1 1
2 2
uniquery1 sql
select s1.orderid,s1.salesid,s2.salesname
from sales s1 left outer join salesman s2
on s1.salesid=s2.salesid
當更改salesid時,使用select salesname from salesman where salesid=:salesid取得salesname去更新uniquery1的salesname
已經設定uniquery1的cacheupdates為真.
更新陳述句如下:
if not UniConnection1.InTransaction then begin
UniConnection1.StartTransaction;
try
UniQuery1.ApplyUpdates;
UniConnection1.Commit;
except
UniQuery1.CancelUpdates;
UniConnection1.Rollback;
end;
end;
問題:
1.如果不改salesid,不管改多少次,都沒問題.
2.如果改salesid,第一次修改保存沒問題,第二次改后保存時出現錯誤: connections is busy with results for another command
3.如果同時改多行的salesid,保存時問題與2一樣.
4.使用UniUpdateSQL沒有用.
uj5u.com熱心網友回復:
如果不使用cacheupdates為真,則沒有問題.使用如下更新,也是一樣出現問題:
if not UniConnection1.InTransaction then begin
UniConnection1.StartTransaction;
try
UniQuery1.ApplyUpdates;
UniConnection1.Commit;
except
UniQuery1.RestoreUpdates;
UniConnection1.Rollback;
raise;
end;
UniQuery1.CommitUpdates;
end;
uj5u.com熱心網友回復:
unidac我最近也在試用還是發現有不少bugs,恐怕最侄訓是得改用ado了
實在是郁悶
比如 unidac中 執行proc的 unistoredproc 第一次執行ok 第二次執行 就會報錯 總是提示上一次執行的東西
csdn上發帖問了好久 也沒人回復
估計unidac用的人不多吧。 具體也不清楚
還請大家指教。。
uj5u.com熱心網友回復:
呵呵,我自己的問題,一個初級錯誤,我也是剛從Ado轉到unidac來才犯這樣的錯.建議不要轉回ado了,Ado真的過時了.轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/137884.html
標籤:數據庫相關
