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

Client/Server架構如何實現??

答題得分者是:Justmade
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-18 13:27:28 IP:61.219.xxx.xxx 未訂閱
最近一直被一個問題所困擾,就是如何在Client/Server的架構中可以類似ClientDataSet物件的功能將資料抓到Client端然後離線,等全改完在一次更新回資料庫...我找的資料目前是用ClientDataSet來做...可是我將ClientDataSet.ProviderName-->TDataSetProvider-->TADoDataSet都設好了卻出現"missing data Provider or data packeg"的錯誤我該如何解決呢?? 我在想是不是ClientDataSet是用在三層架構的所以沒辦法使用?但是我找了很多資料都只有提到3-tier怎麼作卻都沒有看到Client/Server怎麼作??誰可以告訴我要怎麼作ㄋ??拜託幫幫忙!!Thanks ===^^===
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-18 13:43:06 IP:218.16.xxx.xxx 未訂閱
你的 ClientDataSet 及 DataSetProvider 是否在不同 unit 呢? 若是的話,而裝著 CDS 的 unit create 時裝 DSP 又不在的話, CDS.ProviderName 很可能會被自動取消,即使你之後 create 了那個 Form 也不會自動連結了。你可以在 open / executeSQL 之前重新設定 provider。 另外 TClientDataSet 配合 BDE / dbExpress 使用比配合 ADO 好,因為 Delphi 3-5 時 TClientDataSet (in MIDAS) 是以配合 BDE/SQLLink 來開發的,而在 Delphi 7 時 TClientDataSet (in DataSnap) 是配合 dbExpress 來改進的。
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-18 13:58:40 IP:61.219.xxx.xxx 未訂閱
引言: 你的 ClientDataSet 及 DataSetProvider 是否在不同 unit 呢? 若是的話,而裝著 CDS 的 unit create 時裝 DSP 又不在的話, CDS.ProviderName 很可能會被自動取消,即使你之後 create 了那個 Form 也不會自動連結了。你可以在 open / executeSQL 之前重新設定 provider。 另外 TClientDataSet 配合 BDE / dbExpress 使用比配合 ADO 好,因為 Delphi 3-5 時 TClientDataSet (in MIDAS) 是以配合 BDE/SQLLink 來開發的,而在 Delphi 7 時 TClientDataSet (in DataSnap) 是配合 dbExpress 來改進的。
不好意思我忘了貼程式碼...這樣你看了可能比較了解我的意思... var Form1: TForm1; adoPro:TProvider; adoDataSet:TAdodataset; adoClient:TClientDataSet; adoProvider:TDataSetProvider; procedure TForm1.Button2Click(Sender: TObject); begin adodataset:=TAdodataset.Create(self); adoClient:=TClientDataSet.Create(self); adoProvider:=TDataSetProvider.Create(self); adodataset.ConnectionString:='Provider=SQLOLEDB.1;Password=ooioioio;Persist Security Info=True;User ID=sa;Initial Catalog=GGGabc;Data Source=NTSERVER'; adodataset.CommandType:=cmdText; adodataset.CommandText:='select * from world'; adoProvider.DataSet:=adoDataSet; adoClient.ProviderName:='adoProvider'; adoClient.Active:=True; DataSource2.DataSet:=adoDataSet; end; 我主要是希望可以在把資料抓到Client端的記憶體執行然後可以離線作業...完成後再把資料傳回Server的DataBase更新...我不知道除了ClientDataSet物件還有什麼辦法可以做得到...用ADODataSet可以嗎?? 謝謝你的回答 ===^^=== 發表人 - darnell 於 2003/03/18 14:00:09 發表人 - darnell 於 2003/03/18 14:02:11
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-18 14:22:02 IP:218.16.xxx.xxx 未訂閱
adodataset:=TAdodataset.Create(self); adoClient:=TClientDataSet.Create(self); adoProvider:=TDataSetProvider.Create(self); adoProvider.Name := 'adoProvider'; 試試看 或是直接用 元件亦可
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-18 14:37:41 IP:61.219.xxx.xxx 未訂閱
引言: adodataset:=TAdodataset.Create(self); adoClient:=TClientDataSet.Create(self); adoProvider:=TDataSetProvider.Create(self); adoProvider.Name := 'adoProvider'; 試試看 或是直接用 元件亦可
太感謝嚕可以嚕!! 另一個小問題請教一下...除了
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-18 14:46:27 IP:218.16.xxx.xxx 未訂閱
除了 TClientDataSet 就是 TSimpleDataSet ,那是 TClientDataSet 的變種,內含了 TConnection, TSQLDataSet, TDataSetProvider ,其實只是4個元件習合在一起。 這兩個元件內建 Data (儲存數據) 及 Delta (儲存異動),Delta 尤其重要因為就是這個 porperty 讓他可以斷線後重新連線更新時提供所有異動給TDataSetProvider 去自動產生 Update / insert / delete SQL 來執行異動資料的。 順帶一提,Delta 也提供 TClientDataSet Undo 的功能喔。 其他元件沒有這個 porperty 應不可斷線再連線罷。
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-18 14:53:04 IP:61.219.xxx.xxx 未訂閱
引言: 除了 TClientDataSet 就是 TSimpleDataSet ,那是 TClientDataSet 的變種,內含了 TConnection, TSQLDataSet, TDataSetProvider ,其實只是4個元件習合在一起。 這兩個元件內建 Data (儲存數據) 及 Delta (儲存異動),Delta 尤其重要因為就是這個 porperty 讓他可以斷線後重新連線更新時提供所有異動給TDataSetProvider 去自動產生 Update / insert / delete SQL 來執行異動資料的。 順帶一提,Delta 也提供 TClientDataSet Undo 的功能喔。 其他元件沒有這個 porperty 應不可斷線再連線罷。
> ===^^===
系統時間:2024-06-28 17:29:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!