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

關於ADO的一個小問題。

答題得分者是:Justmade
yezi_ji
一般會員


發表:16
回覆:31
積分:9
註冊:2003-03-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-29 10:39:04 IP:218.14.xxx.xxx 未訂閱
各位大哥及前輩,小弟有一問題請教:小弟做了一個MDI界面,並且是先顯示顯示Login(登錄框),再顯示主界面,還做了一個DataModule,在其中有一ADOTable,用ADO連接數據庫,Login初始化程序如下: procedure TLogin.FormCreate(Sender: TOBject); begin with DataModule1 do begin ADOTable1.Open;//50 ADOTable1.First; while not ADOTable1.Eof do begin ComboBox1.Items.Add(ADOTable1.FieldByName('Employeename').AsString); ADOTable1.Next; end; end; end; 以上程序的目的是:在ComboBox中可以顯示全部的員工姓名,以供選擇。但是現在在程序的50這個地方會出現錯誤,如下: Project Pos_manager.exe raised exception class EAccessViolation with message 'Access violation at address 004A7122 in module 'Pos_manager.exe'. Read of address 0000005C'. Process stopped. Use Step or Run to continue. 請各位大哥指點。 我是菜鳥,請多指點! 不勝感激!!
Justmade
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-29 11:04:43 IP:218.16.xxx.xxx 未訂閱
相信是你的 DataModule1 還未 Create 罷。    若你的 DataModule1 是整個程式共用的,建議你在 Project->Options->Form 將 DataModule1 加入 Auto-Create Forms 裡, 這樣就不用別的程式碼而可直接使用了。 若你只是在需要用時才 Create 用完後就 Free 你可以 :
procedure TLogin.FormCreate(Sender: TOBject);
begin
  DataModule1 := TDataModule1.Create(Self);
  with DataModule1 do
另外記得在 FormClose 事件裡加入 DataModule1.Free; 修改 : 加入紅色部份,記得兩個方法是任選一個不能共用。 發表人 - Justmade 於 2003/03/29 11:07:29
yezi_ji
一般會員


發表:16
回覆:31
積分:9
註冊:2003-03-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-29 11:43:08 IP:218.14.xxx.xxx 未訂閱
引言: 若你的 DataModule1 是整個程式共用的,建議你在 Project->Options->Form 將 DataModule1 加入 Auto-Create Forms 裡, 這樣就不用別的程式碼而可直接使用了。
非常感謝你,我的DataModule是在Auto-Create Forms里,這是創建次序的問題,在Auto-Create Forms里,我把DataModule擺在第一位,fmMain和fmLogin放在後面就解決了。 我是菜鳥,請多指點! 不勝感激!!
系統時間:2024-06-29 16:07:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!