關於ADO的一個小問題。 |
答題得分者是:Justmade
|
yezi_ji
一般會員 發表:16 回覆:31 積分:9 註冊:2003-03-22 發送簡訊給我 |
各位大哥及前輩,小弟有一問題請教:小弟做了一個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 發送簡訊給我 |
相信是你的 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 發送簡訊給我 |
引言: 若你的 DataModule1 是整個程式共用的,建議你在 Project->Options->Form 將 DataModule1 加入 Auto-Create Forms 裡, 這樣就不用別的程式碼而可直接使用了。非常感謝你,我的DataModule是在Auto-Create Forms里,這是創建次序的問題,在Auto-Create Forms里,我把DataModule擺在第一位,fmMain和fmLogin放在後面就解決了。 我是菜鳥,請多指點! 不勝感激!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |