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

可否共一個Query元件

答題得分者是:jieshu
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-13 11:18:57 IP:61.58.xxx.xxx 未訂閱
請教前輩   若在RDM上放一Query元件用於查詢,那這Query元件會不會同時被 多個Client使用,還是會一個Client使用完再換下一個使用?? 謝謝
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-13 11:57:37 IP:210.58.xxx.xxx 未訂閱
Hello cubi兄您好: 他會再開一Session去控制, 但要注意的是若是在同一Client同一個Form上,去連接那個Query資料就會有錯亂的情形產生. 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-11-13 12:35:34 IP:203.204.xxx.xxx 未訂閱
引言: 請教前輩 若在RDM上放一Query元件用於查詢,那這Query元件會不會同時被 多個Client使用,還是會一個Client使用完再換下一個使用?? 謝謝
如果在新增RDM時,有照我上次講的方法,那就是每支前端程式連到後端時,RDM會產生有多少前端連的實體,也就是如果有執行五次前端程式,後端RDM就會產生五個,好處是各自獨立不怕錯亂,壞處是佔記憶體空間,所以每個RDM不要放太多東西。 經測試(設定如上),如果僅是查詢,使用同一Query並不會有問題,因為不會同時查詢,但如果此Query有要異動資料,又讓其他查詢,先查異動資料,再給其他查資料,就會異動資料失敗。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-11-13 12:56:53 IP:61.58.xxx.xxx 未訂閱
小弟是用Instancing:Multiple Instance
        Threading Model:Apartment
也就是如果有執行五次前端程式,後端RDM就會產生五個
那如果人事系統一個RDM,車管,財管再各一個RDM,那若有5個Client
執行人事系統,那在Server就有5個RDM,車管及財管的RDM是否會產生呢??    謝謝
發表人 - cubi 於 2002/11/13 12:58:32
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-11-13 13:30:24 IP:203.204.xxx.xxx 未訂閱
引言:
小弟是用Instancing:Multiple Instance
        Threading Model:Apartment
也就是如果有執行五次前端程式,後端RDM就會產生五個
那如果人事系統一個RDM,車管,財管再各一個RDM,那若有5個Client
執行人事系統,那在Server就有5個RDM,車管及財管的RDM是否會產生呢??    謝謝
發表人 - cubi 於 2002/11/13 12:58:32
抱歉前一篇還是說的不夠清楚,應該是說每一個DCOMConnection連接,就會產生一個對應的RDM,所以MDI模式開啟越多程式就產生越多RDM,所以最好當然是一支程式對應一個RDM,但是這樣又好像RDM多了點,所以一個功能模組兩、三個RDM會中庸點,自行斟酌一下。 PS. DCOMConnection1.Connected := False;就會釋放RDM。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-11-13 13:47:37 IP:61.58.xxx.xxx 未訂閱
太感謝前輩的回答,小弟了解了,尚有一問題請教您, 小弟用ClientDataSet新增一筆資料,如下
  with ClientDataSet1 do
  begin
    Append;
    FieldByName('A001').Text := 'aaa';
    FieldByName('A002').Text := 'bbb';
    ApplyUpdates(0);
  end;
但是資料卻沒寫入資料庫(Sql2000),是否那裡忽略了呢,謝謝
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-11-13 14:41:08 IP:203.204.xxx.xxx 未訂閱
引言: 太感謝前輩的回答,小弟了解了,尚有一問題請教您, 小弟用ClientDataSet新增一筆資料,如下
  with ClientDataSet1 do
  begin
    Append;
    FieldByName('A001').Text := 'aaa';
    FieldByName('A002').Text := 'bbb';
    ApplyUpdates(0);
  end;
但是資料卻沒寫入資料庫(Sql2000),是否那裡忽略了呢,謝謝
記得!還沒Post之前ChangeCount是不會改變的,所以...... 和CacheUpdate有點類似。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-11-13 14:55:10 IP:61.58.xxx.xxx 未訂閱
小弟現在改用Post再下ApplyUpdate資料一樣存不進資料庫, 但小弟在DataSetProvider的OnUpdateDate查,資料有到這裡, 架構如下 Server端 ADOConnection -> ADOQuery -> DataSetProvider Client端 ClientDataSet -> DCOMConnection -> Server.DataSetProvider 嗚嗚~~~快哭了,只是一個新增資料的動作搞了快一天還搞不出來,煩請 前輩救命呀~~~~~~~~
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-11-13 15:59:43 IP:210.58.xxx.xxx 未訂閱
cubi 兄您好: 你可以在TClientDataSet.CommandText下SQL先試試看資料是否寫的過去, 繼續往下一步走. 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-11-13 16:23:39 IP:61.58.xxx.xxx 未訂閱
前輩您好: 直接用CommandText下Insert可以把資料寫入, 請問若要存檔,是不是下ClientDataSet.ApplyUpdate, 就行了,還是DataSetProvider或ClientDataSet的那 個Property需要特別注意的呢,謝謝
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-11-13 17:35:05 IP:203.204.xxx.xxx 未訂閱
引言: 小弟現在改用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/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
billsons
一般會員


發表:1
回覆:10
積分:2
註冊:2002-04-15

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-11-14 08:43:18 IP:218.17.xxx.xxx 未訂閱
引言: 太感謝前輩的回答,小弟了解了,尚有一問題請教您, 小弟用ClientDataSet新增一筆資料,如下
  with ClientDataSet1 do
  begin
    Append;
    FieldByName('A001').Text := 'aaa';
    FieldByName('A002').Text := 'bbb';
    ApplyUpdates(0);
  end;
但是資料卻沒寫入資料庫(Sql2000),是否那裡忽略了呢,謝謝
不知道我说的对不对,以前我有听说过with有点问题,你不要用with而改用直接写的方式。在者你ApplyUpdates之后先检查一下有没有什么错误发生,之后把你的情况详细地写出来,大家帮你解决。
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-11-14 17:20:40 IP:61.58.xxx.xxx 未訂閱
感謝前輩們的回答,小弟找到原因了, 因為要新增的Table有3個欄位,且欄位設為Not Allow Null, 而小弟在新增時只給了2個欄位的值,所以新增不成功, 但為什麼沒錯誤訊息?? 再次感謝各位前輩,小弟一時疏忽讓各位前輩勞心了
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#14 引用回覆 回覆 發表時間:2002-11-14 17:44:45 IP:203.204.xxx.xxx 未訂閱
引言: 感謝前輩們的回答,小弟找到原因了, 因為要新增的Table有3個欄位,且欄位設為Not Allow Null, 而小弟在新增時只給了2個欄位的值,所以新增不成功, 但為什麼沒錯誤訊息?? 再次感謝各位前輩,小弟一時疏忽讓各位前輩勞心了
記得在Delphi4時好像都會自己拋出錯誤訊息,但是到了Delphi5要在TDataSetProvider的OnUpdateError或TClientDataSet的OnReconcileError將錯誤訊息拋出才會秀出來,忘了兩個都要設還是只設一個就好,我是兩個都有設。
人生有夢,逐夢而行。 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
系統時間:2024-04-26 16:24:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!