全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1077
推到 Plurk!
推到 Facebook!

ADO與DBExpress是否可以合併使用??

缺席
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-06 10:19:20 IP:61.221.xxx.xxx 未訂閱
小弟想將ADO換成DBExpress元件,但是因為SQLStoreProc的元件無法在runtime時期自動得到parameter,先前已問過此問題 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=38929 所以採用ADOStoreProc元件來使用,但是遇到很奇怪的事情, 原來舊版的程式是完全使用ADO元件,是可以執行的,兩種元件混合使用後卻不行。相同的程式呼叫相同的store procedure,stored procedure 的執行內容只是 update 某個table某個欄位值。覺得很奇怪,那段程式碼都一樣,也沒有任何有關DBExpress的元件的程式碼。發生逾時過期的錯誤。真不曉得是兩種元件是否有干擾或打架了~~
------
ivankuo
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-06 14:20:51 IP:61.221.xxx.xxx 未訂閱
小弟已經知道問題在哪裡, 小弟是用DBExpress ClientDataSet元件,其中SQLQuery的語法中有SubQuery敘述,小弟測試後發現,當我的ClientDataSet的PacketRecord有限制筆數,當我的subquery敘述中主要的table與subquery table關聯條件有用到主table的PK欄位的話,當程式執行起來,去查看SQL Server 2000 的Locks 會發現主table和subquery的table會被lock 但是 主table此時就無法備update 任何資料了,但可以新增或刪除。請問大家有遇到這樣的問題嗎?? 假設如下 T2的f1欄位為PK,就會發生此問題,若不是則不會有lock的問題。 select f1,f2,fa=(select bb from T1 where b1=T2.f1) from T2
------
ivankuo
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-06 14:28:56 IP:61.221.xxx.xxx 未訂閱
引言: 小弟已經知道問題在哪裡, 小弟是用DBExpress ClientDataSet元件,其中SQLQuery的語法中有SubQuery敘述,小弟測試後發現,當我的ClientDataSet的PacketRecord有限制筆數,當我的subquery敘述中主要的table與subquery table關聯條件有用到主table的PK欄位的話,當程式執行起來,去查看SQL Server 2000 的Locks 會發現主table和subquery的table會被lock 但是 主table此時就無法備update 任何資料了,但可以新增或刪除。請問大家有遇到這樣的問題嗎?? 假設如下 T2的f1欄位為PK,就會發生此問題,若不是則不會有lock的問題。 select f1,f2,fa=(select bb from T1 where b1=T2.f1) from T2 PS 補充一下,若ClientDataSet沒有限制資料筆數,或是ClientDataSet將資料全部載入(ClientDataSet.Last),就不會發生此問題了,Lock也會解除。
ps 在補充:小弟用ADOQuery搭配ClientDataSet來測試,結果沒有此問題,我想應該是DBExpress的問題吧。 發表人 - ivankuo 於 2003/11/06 14:40:53
------
ivankuo
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-06 16:27:56 IP:61.221.xxx.xxx 未訂閱
引言:
引言: 小弟已經知道問題在哪裡, 小弟是用DBExpress ClientDataSet元件,其中SQLQuery的語法中有SubQuery敘述,小弟測試後發現,當我的ClientDataSet的PacketRecord有限制筆數,當我的subquery敘述中主要的table與subquery table關聯條件有用到主table的PK欄位的話,當程式執行起來,去查看SQL Server 2000 的Locks 會發現主table和subquery的table會被lock 但是 主table此時就無法備update 任何資料了,但可以新增或刪除。請問大家有遇到這樣的問題嗎?? 假設如下 T2的f1欄位為PK,就會發生此問題,若不是則不會有lock的問題。 select f1,f2,fa=(select bb from T1 where b1=T2.f1) from T2 PS 補充一下,若ClientDataSet沒有限制資料筆數,或是ClientDataSet將資料全部載入(ClientDataSet.Last),就不會發生此問題了,Lock也會解除。
ps 在補充:小弟用ADOQuery搭配ClientDataSet來測試,結果沒有此問題,我想應該是DBExpress的問題吧。 發表人 - ivankuo 於 2003/11/06 14:40:53
問題已經不在標題中了,我想我還是換個標題吧~~~先結案~~
------
ivankuo
系統時間:2024-06-02 21:04:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!