可否共一個Query元件 |
答題得分者是:jieshu
|
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
|||
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 請教前輩 若在RDM上放一Query元件用於查詢,那這Query元件會不會同時被 多個Client使用,還是會一個Client使用完再換下一個使用?? 謝謝如果在新增RDM時,有照我上次講的方法,那就是每支前端程式連到後端時,RDM會產生有多少前端連的實體,也就是如果有執行五次前端程式,後端RDM就會產生五個,好處是各自獨立不怕錯亂,壞處是佔記憶體空間,所以每個RDM不要放太多東西。 經測試(設定如上),如果僅是查詢,使用同一Query並不會有問題,因為不會同時查詢,但如果此Query有要異動資料,又讓其他查詢,先查異動資料,再給其他查資料,就會異動資料失敗。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言:抱歉前一篇還是說的不夠清楚,應該是說每一個DCOMConnection連接,就會產生一個對應的RDM,所以MDI模式開啟越多程式就產生越多RDM,所以最好當然是一支程式對應一個RDM,但是這樣又好像RDM多了點,所以一個功能模組兩、三個RDM會中庸點,自行斟酌一下。 PS. DCOMConnection1.Connected := False;就會釋放RDM。小弟是用Instancing:Multiple Instance Threading Model:Apartment 也就是如果有執行五次前端程式,後端RDM就會產生五個 那如果人事系統一個RDM,車管,財管再各一個RDM,那若有5個Client 執行人事系統,那在Server就有5個RDM,車管及財管的RDM是否會產生呢?? 謝謝發表人 - cubi 於 2002/11/13 12:58:32
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 太感謝前輩的回答,小弟了解了,尚有一問題請教您, 小弟用ClientDataSet新增一筆資料,如下記得!還沒Post之前ChangeCount是不會改變的,所以...... 和CacheUpdate有點類似。with ClientDataSet1 do begin Append; FieldByName('A001').Text := 'aaa'; FieldByName('A002').Text := 'bbb'; ApplyUpdates(0); end;但是資料卻沒寫入資料庫(Sql2000),是否那裡忽略了呢,謝謝
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
小弟現在改用Post再下ApplyUpdate資料一樣存不進資料庫,
但小弟在DataSetProvider的OnUpdateDate查,資料有到這裡,
架構如下
Server端
ADOConnection -> ADOQuery -> DataSetProvider
Client端
ClientDataSet -> DCOMConnection -> Server.DataSetProvider
嗚嗚~~~快哭了,只是一個新增資料的動作搞了快一天還搞不出來,煩請
前輩救命呀~~~~~~~~
|
||
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|||
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 小弟現在改用Post再下ApplyUpdate資料一樣存不進資料庫, 但小弟在DataSetProvider的OnUpdateDate查,資料有到這裡, 架構如下 Server端 ADOConnection -> ADOQuery -> DataSetProvider Client端 ClientDataSet -> DCOMConnection -> Server.DataSetProvider 嗚嗚~~~快哭了,只是一個新增資料的動作搞了快一天還搞不出來,煩請 前輩救命呀~~~~~~~~那應該是你的ADOQuery的問題,你是不是LockType設為ltBatchOptimistic,那還要自己下......才會更新到資料庫,ADO不熟你應該知道我講什麼,就是類似Query1.ApplyUpdates。 也檢查一下ResolveToDataSet是否設為False(讓TDataSetProvider來做Update)。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
billsons
一般會員 發表:1 回覆:10 積分:2 註冊:2002-04-15 發送簡訊給我 |
引言: 太感謝前輩的回答,小弟了解了,尚有一問題請教您, 小弟用ClientDataSet新增一筆資料,如下不知道我说的对不对,以前我有听说过with有点问题,你不要用with而改用直接写的方式。在者你ApplyUpdates之后先检查一下有没有什么错误发生,之后把你的情况详细地写出来,大家帮你解决。with ClientDataSet1 do begin Append; FieldByName('A001').Text := 'aaa'; FieldByName('A002').Text := 'bbb'; ApplyUpdates(0); end;但是資料卻沒寫入資料庫(Sql2000),是否那裡忽略了呢,謝謝 |
||
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 感謝前輩們的回答,小弟找到原因了, 因為要新增的Table有3個欄位,且欄位設為Not Allow Null, 而小弟在新增時只給了2個欄位的值,所以新增不成功, 但為什麼沒錯誤訊息?? 再次感謝各位前輩,小弟一時疏忽讓各位前輩勞心了記得在Delphi4時好像都會自己拋出錯誤訊息,但是到了Delphi5要在TDataSetProvider的OnUpdateError或TClientDataSet的OnReconcileError將錯誤訊息拋出才會秀出來,忘了兩個都要設還是只設一個就好,我是兩個都有設。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |