線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1254
推到 Plurk!
推到 Facebook!

求救!!編碼發生錯誤

尚未結案
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-25 14:53:23 IP:63.201.xxx.xxx 未訂閱
我的程式碼如下: procedure TForm_OPListView.FormCreate(Sender: TObject); begin DataModule1.AT_RDMaster.Active := true; DataModule1.AT_RDDetail.Active := true; DataModule1.AT_RDEval.Active := true; DataModule1.AT_RDOPCT.Active := true; DBNavigator.DataSource := DataModule1.DS_RDOPList; DataModule1.AT_RDMaster.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDMaster.MasterFields := 'CodeNo'; DataModule1.AT_RDDetail.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDDetail.MasterFields := 'CodeNo'; DataModule1.AT_RDEval.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDEval.MasterFields := 'CodeNo'; DataModule1.AT_RDOPCT.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDOPCT.MasterFields := 'CodeNo'; end; 執行時發生錯誤,錯誤如下; access violation at address 40045E3C in module 'rtl70.bpl',read of address 00000004 請先進告訴我問題何在!! james
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-25 15:07:01 IP:61.219.xxx.xxx 未訂閱
DataModule1.DS_RDOPList.DataSet 是什麼 ? /* Free 和 Create 一樣重要 */
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-25 17:18:53 IP:211.23.xxx.xxx 未訂閱
引言: 我的程式碼如下: procedure TForm_OPListView.FormCreate(Sender: TObject); begin DataModule1.AT_RDMaster.Active := true; DataModule1.AT_RDDetail.Active := true; DataModule1.AT_RDEval.Active := true; DataModule1.AT_RDOPCT.Active := true; DBNavigator.DataSource := DataModule1.DS_RDOPList; DataModule1.AT_RDMaster.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDMaster.MasterFields := 'CodeNo'; DataModule1.AT_RDDetail.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDDetail.MasterFields := 'CodeNo'; DataModule1.AT_RDEval.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDEval.MasterFields := 'CodeNo'; DataModule1.AT_RDOPCT.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDOPCT.MasterFields := 'CodeNo'; end; 執行時發生錯誤,錯誤如下; access violation at address 40045E3C in module 'rtl70.bpl',read of address 00000004 請先進告訴我問題何在!! james
請把以上程式碼放在 FromShow 試試 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-25 17:38:19 IP:211.21.xxx.xxx 未訂閱
您可以將程式改成這樣試試看:
 
procedure TForm_OPListView.FormCreate(Sender: TObject);
begin
  DBNavigator.DataSource := DataModule1.DS_RDOPList;
  DataModule1.AT_RDMaster.MasterSource := DataModule1.DS_RDOPList;
  DataModule1.AT_RDMaster.MasterFields := 'CodeNo';
  DataModule1.AT_RDMaster.IndexFieldNames := 'CodeNo';
  DataModule1.AT_RDDetail.MasterSource := DataModule1.DS_RDOPList;
  DataModule1.AT_RDDetail.MasterFields := 'CodeNo';
  DataModule1.AT_RDDetail.IndexFieldNames := 'CodeNo';
  DataModule1.AT_RDEval.MasterSource := DataModule1.DS_RDOPList;
  DataModule1.AT_RDEval.MasterFields := 'CodeNo';
  DataModule1.AT_RDEval.IndexFieldNames := 'CodeNo';
  DataModule1.AT_RDOPCT.MasterSource := DataModule1.DS_RDOPList;
  DataModule1.AT_RDOPCT.MasterFields := 'CodeNo';
  DataModule1.AT_RDOPCT.IndexFieldNames := 'CodeNo';
  //將Active放在後面
  DataModule1.AT_RDMaster.Active := true;
  DataModule1.AT_RDDetail.Active := true;
  DataModule1.AT_RDEval.Active := true;
  DataModule1.AT_RDOPCT.Active := true;
end;
~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-26 01:44:07 IP:206.204.xxx.xxx 未訂閱
多謝大家幫忙!!程式設計聚樂步的葉先生告訴我可能的原因是我的datamoudle form 開啟的比 TForm_OPListView 為慢,因此當時 db還未開啟,他要我於 project/option 將 datamodule 提前,但我還是沒法解決,因為我修改後再次編輯後,我發現次序又回到以前,請各位也幫我在想想辦法 多謝
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-26 01:44:22 IP:206.204.xxx.xxx 未訂閱
多謝大家幫忙!!程式設計聚樂步的葉先生告訴我可能的原因是我的datamoudle form 開啟的比 TForm_OPListView 為慢,因此當時 db還未開啟,他要我於 project/option 將 datamodule 提前,但我還是沒法解決,因為我修改後再次編輯後,我發現次序又回到以前,請各位也幫我在想想辦法 多謝
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-26 10:46:18 IP:61.66.xxx.xxx 未訂閱
引言: 我的程式碼如下: procedure TForm_OPListView.FormCreate(Sender: TObject); begin DataModule1.AT_RDMaster.Active := true; DataModule1.AT_RDDetail.Active := true; DataModule1.AT_RDEval.Active := true; DataModule1.AT_RDOPCT.Active := true; DBNavigator.DataSource := DataModule1.DS_RDOPList; DataModule1.AT_RDMaster.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDMaster.MasterFields := 'CodeNo'; DataModule1.AT_RDDetail.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDDetail.MasterFields := 'CodeNo'; DataModule1.AT_RDEval.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDEval.MasterFields := 'CodeNo'; DataModule1.AT_RDOPCT.MasterSource := DataModule1.DS_RDOPList; DataModule1.AT_RDOPCT.MasterFields := 'CodeNo'; end; 執行時發生錯誤,錯誤如下; access violation at address 40045E3C in module 'rtl70.bpl',read of address 00000004 請先進告訴我問題何在!! james
1.從你的程式來看, 在ONCREATE建立時指定各DATAMODULE的值, 並未代入參數 , 所以把這段放到DATAMODULE 的ONCREATE上執行 除了 DBNavigator.DataSource := DataModule1.DS_RDOPList; 仍放在 form1.oncreate中 2.一般FORM搭配DATAMODULE使用遇到ACCESS....問題時, 多半是在FORM CREATE時呼叫到 DATAMODULE, 而 DATAMODULE並未被CREATE出來, 請查一下你的PROJECT中, DATAMODULE是自動CRREATE或手動, 如果是手動, 請在 FORM1 CREATE之前加入 DATAMODULE1:= TDataModule1.Create(Application), 但如果form1是mainForm的話, 你可能要把datamodule放到autocreate中, 同時必須在form1之上(前)才可以 3.但我再從你的錯誤來看, 問題出在 'rtl70.bpl' 這個部份, 那應該不是datamodule的問題, 建議你先拿掉datamoudle, 看會不會有問題, 另外就是查一下你有拉了什麼vcl是由 rtl70.bpl中出來的
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-26 12:04:27 IP:63.201.xxx.xxx 未訂閱
PD先生..多謝你的幫忙,問題我解決了.採用你第二種方式..再次感謝
系統時間:2024-05-03 7:33:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!