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

請教DataModule的使用問題

尚未結案
kingch
一般會員


發表:7
回覆:5
積分:2
註冊:2004-07-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-11 10:41:22 IP:211.74.xxx.xxx 未訂閱
各位大大,我現在在練習用DataModule,想請教幾個問題:一、如果我將ADOConnection放在DataModule上,ADOTable或ADOQuery等物件放在Form上時,在設計階段可以從DBGrid上看到資料,但只要一執行就會出現錯誤,且我將Delphi6關閉後就無法再開啟剛練習的程式,可是如果將ADOConnection、ADOTable或ADOQuery等物件一起放在DataModule上就不會有問題,這是什麼原因呢?二、如果我的程式有很多Form及多人同時連線使用,在使用DataModule的情況下,ADOTable或ADOQuery等物件應該放多少個(如每個Form都有對應的ADOTable或ADOQuery物件或在Form建立時用程式控制連結就好),對效能上有什麼影響嗎? 謝謝!感恩Y Delphi的初學者
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-11 14:24:40 IP:218.163.xxx.xxx 未訂閱
小弟猜測,有錯請指正。 我想您可以於一開始先將ADOTABLE.ACTIVE設為FALSE,然後於下列設 procedure TForm1.FormShow(Sender: TObject); begin IF NOT DataModule2.ADOConnection1.Connected THEN DataModule2.ADOConnection1.Connected :=True; ADOTable1.Active :=True; end; 問題應在於你先開啟FORM後才開啟DATAMODULE造成取不到ADOCONNECT 或在PROJECT裡將DATAMOUDLE的開啟順序放於FORM之前 ========================= 讀萬卷書~不如來K.TOP走一遭 =========================
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-11 14:29:10 IP:202.39.xxx.xxx 未訂閱
1.小弟猜想是 Form 與 DataModule 兩者之間 create 的順序問題
program Project1;    uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule1: TDataModule};    {$R *.RES}    begin
  Application.Initialize;
  // 將以下這兩行的順序對調, 也就是讓 DataModule1 先 create
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TDataModule1, DataModule1);
  Application.Run;
end.
2.應該說跟放幾個 TADOTable/TADOQuery 沒多大關聯 重點是在同時間開啟多少 Table、用什麼方式開啟、連線人數多少... 等有關吧.
kingch
一般會員


發表:7
回覆:5
積分:2
註冊:2004-07-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-11 17:56:35 IP:211.74.xxx.xxx 未訂閱
感謝版主及ikush,我的第一個問題解決了,但第二個問題是觀念問題,我更正一下問的方式,也就是假設在同樣多人連線使用的情形下,將個別Form中所會用到的ADOTable放在Form裏好,還是將所有的ADOTable放在DataModule中會比較好,而且如果有十個Form是否就要放十個ADOTable? Delphi的初學者
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-11 21:34:04 IP:218.163.xxx.xxx 未訂閱
小弟建議,有錯請指正。 一般來說將ADOtable放在datamoudle會比較好管理,如果將來table有需要作修正時,直接於datamoudle中統一更改,會比至每個form中修改來得方便多了,也比較能避免出現因忘記修改而產生出錯之情況。 ========================= 讀萬卷書~不如來K.TOP走一遭 =========================
系統時間:2024-06-02 22:12:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!