多層架構如何具體實現 |
答題得分者是:Rain
|
richcomp
中階會員 發表:18 回覆:66 積分:51 註冊:2002-10-18 發送簡訊給我 |
這幾天看了李維的MIDAS書,感覺很不錯,想自己用它來改寫我的小型MRP,以前我用的是ADO ORACLE做的兩層,已在成功運行,後臺數據表近100個。
現在我想將一些問題大家討論,希望大家共同進步。
1、SERVER端REMOTEDATAMODULE中,放置一些數據表(用SQLDATASET),是不是每個TABLE都應有一個?
2、因爲資料量大,我想讓客戶端可以查詢,是直接用CLIENTDATASET.commandtext,還是向SERVER端的SQLDATASET.commandtext賦值,PROVIDE中allowcommandtext與否有什麽主要差別
3、我有許多MASTER-DETAIL表,其聯接應在SERVER端還是CLIENT端?SERVER端用戶同時使用會不會衝突
4、一些資料檢查與資料自動填入,(如在收料時,當用戶輸入完采購單號與項次,自動檢查采購單狀况,如正常則將料號、單位、未交量等返回幷自動填入),這應屬企業規則,想放在SERVER端,可資料在APPLYUPDATE時才向SERVER提交,如何解决呢?
5、資料過帳處理應屬企業規則,我如何將用戶目前CLIENTDATASET中的值一筆一筆放到SERVER端執行呢?
可能我的問題多了點,有些可能是簡單的,也可能還有很多問題,希望與大家共勉 發表人 - richcomp 於 2003/03/07 19:47:27
| ||
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
以下是我的一點粗淺的看法,有不妥之處還請指正,另外SERVER端我通常用的是ADO元件而非dbExpress,有些地方可能會有點差別。 1,可以所有的資料表只用一個SQLDataSet和DataSetPrivider連接,但這樣如果多用戶同時更新資料時會出現問題,一種解決方法是在更新資料前再傳遞SQL語句,例如在TClientDataSet的BeforeApplyUpdates事件中處理:
begin
with Sender as TClientDataSet do
OwnerData := CommandText;
end;
然後在SERVER端TDataSetProvider的BeforeApplyUpdates事件中賦值
begin
SQLDataSet.CommandText := OwnerData;
end; 如果一個資料表都提供這樣的一個連接,資料表很多(例如你這種情況,近百個)的話可以動態創建、釋放這些TSQLDataSet和TDataSetProvider,不這樣做的話,一個遠端資料一下放那麼元件不大現實。 2,如果直接用TClientDataSet.CommandText,則AllowCommandText屬性需設成True,在第一個問題中如果所有的資料表你只使用一個連接,則只能在TClientDataSet.CommandText中寫SQL語句了,否則有兩種選擇,建議給SQLDATASET.CommandText賦值。 3,主、明細表在用戶端或者伺服器端連接都是可以的,當然同樣的如果在伺服器端連接一個資料表需要提供一個TSQLDataSet。 4,如果把這些放在用戶端可以在TClientDataSet的BeforePost事件中判斷,不符合就直接Abort。放在應用程式伺服器端中可在TDataSetProvider的BeforeApplyUpdates事件中進行處理。
|
||
richcomp
中階會員 發表:18 回覆:66 積分:51 註冊:2002-10-18 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 如果我用allowcommandtext, server端用SQLquery作查詢,當多用戶同時使用此Query(SERVER端不需要保留數據集),會不會衝突如果此DataSetProvider僅供查詢用是不會的,如果會更新資料,可能得分開較好。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|||
paiching
一般會員 發表:0 回覆:1 積分:0 註冊:2003-03-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |