請教DataModule的使用問題 |
尚未結案
|
kingch
一般會員 發表:7 回覆:5 積分:2 註冊:2004-07-17 發送簡訊給我 |
各位大大,我現在在練習用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 發送簡訊給我 |
小弟猜測,有錯請指正。
我想您可以於一開始先將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 發送簡訊給我 |
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 發送簡訊給我 |
|
likush
高階會員 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |