Access violation at address .... |
答題得分者是:P.D.
|
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
請問各位先進有關 Access violation at address 問題:
1. 環境 XE6 sql2012 dbexpress 2. 同樣的語法, 在 副程式 add_sal_pur_mnu_cat 執行到 mbdgt01_f.sqlquery1.Close; 會出現, Access violation at address ... 錯誤訊息,..., 但若寫在 Button3Click 中;則不會, 不知原因為何? 3. 為何在 副程式 coding 時, 一定要冠上, "mbdgt01_f" 才不會報錯, 如: mbdgt01_f.sqlquery1.Close; 但在 Button3Click 時, 則不需要? 4. 簡附程式如下: 謝謝!!!! === procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string); var sql_str :string; begin // sql sql_str := ''; if t_bdga04 <> '' then begin sql_str := 'insert into bdgm values(''' t_bdga04 ''',''test data'')'; mbdgt01_f.sqlquery1.Close; mbdgt01_f.sqlquery1.SQL.Clear; mbdgt01_f.sqlquery1.SQL.Add(sql_str); mbdgt01_f.sqlquery1.ExecSQL; end; end; procedure Tmbdgt01_f.Button4Click(Sender: TObject); var t1,t2,t3 :string; begin t1 := edit2.Text; t2 := 'aa'; t3 := 'bb'; add_sal_pur_mnu_cat(t1,t2,t3); end; procedure Tmbdgt01_f.Button3Click(Sender: TObject); var sql_str: string; begin sql_str := 'insert into bdgm values(''bdga14'',''test data'')'; sqlquery1.Close; sqlquery1.SQL.Clear; sqlquery1.SQL.Add(sql_str); sqlquery1.ExecSQL; end;
------
DVF |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
Mbdgt01 未被 Create
===================引 用 feng2939 文 章=================== 請問各位先進有關 Access violation at address 問題: 1. 環境 XE6 sql2012 dbexpress 2. 同樣的語法, 在 副程式 add_sal_pur_mnu_cat 執行到 mbdgt01_f.sqlquery1.Close; 會出現, Access violation at address ... 錯誤訊息,..., 但若寫在 Button3Click 中;則不會, 不知原因為何? 3. 為何在 副程式 coding 時, 一定要冠上, "mbdgt01_f" 才不會報錯, 如: mbdgt01_f.sqlquery1.Close; 但在 Button3Click 時, 則不需要? 4. 簡附程式如下: 謝謝!!!! === procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string); var sql_str :string; begin // sql sql_str := ''; if t_bdga04 <> '' then begin sql_str := 'insert into bdgm values(''' t_bdga04 ''',''test data'')'; mbdgt01_f.sqlquery1.Close; mbdgt01_f.sqlquery1.SQL.Clear; mbdgt01_f.sqlquery1.SQL.Add(sql_str); mbdgt01_f.sqlquery1.ExecSQL; end; end; procedure Tmbdgt01_f.Button4Click(Sender: TObject); var t1,t2,t3 :string; begin t1 := edit2.Text; t2 := 'aa'; t3 := 'bb'; add_sal_pur_mnu_cat(t1,t2,t3); end; procedure Tmbdgt01_f.Button3Click(Sender: TObject); var sql_str: string; begin sql_str := 'insert into bdgm values(''bdga14'',''test data'')'; sqlquery1.Close; sqlquery1.SQL.Clear; sqlquery1.SQL.Add(sql_str); sqlquery1.ExecSQL; end;
|
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
謝謝 P.D. 幫忙解答, 我的狀況如下:
1. procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string);是宣告在 IMPLEMEMTATION 下, 而且一定要第一個 procedure 才行. 但若把它放到 PRIVATE 或 PUBLIC 中不行耶,會報錯. 還是我沒弄對? 2. 試了用 SELF 或 NIL 都不行, 狀況依舊... ===================引 用 P.D. 文 章=================== 1. 請問你的 procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string); 是宣告在那裡? PRIVATE, PUBLIC 或 IMPLEMEMTATION 下? 2. 我之前學習DELPHI時, 被前輩告知, 除了主FORM由 DELPHI自動CREATE外, 其他最好都自己創建(CREATE), 而且最好不要用 (APPLICATION), 改用 SELF 或 NIL
------
DVF |
blue
中階會員 發表:170 回覆:136 積分:81 註冊:2002-04-15 發送簡訊給我 |
Hi,您好:
若把它放到 PRIVATE 或 PUBLIC 中不行耶,會報錯 --> 若要放在 PRIVATE或 PUBLIC要加 TObject. (我不知是不是這樣稱呼),例如 procedure TForm1.add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string); 另,會出現 Access violation at address 的問題應該如 GrandRURU 所說 Mbdgt01 未被 Create 請先確認在 MDI 主程式是否確實被 Create, 謝謝! ===================引 用 feng2939 文 章=================== 謝謝 P.D. 幫忙解答, 我的狀況如下: 1. procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string);是宣告在 IMPLEMEMTATION 下, 而且一定要第一個 procedure 才行. 但若把它放到 PRIVATE 或 PUBLIC 中不行耶,會報錯. 還是我沒弄對? 2. 試了用 SELF 或 NIL 都不行, 狀況依舊... ===================引 用 P.D. 文 章=================== 1. 請問你的 procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string); 是宣告在那裡? PRIVATE, PUBLIC 或 IMPLEMEMTATION 下? 2. 我之前學習DELPHI時, 被前輩告知, 除了主FORM由 DELPHI自動CREATE外, 其他最好都自己創建(CREATE), 而且最好不要用 (APPLICATION), 改用 SELF 或 NIL |
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
全文如下:
mbdgt01_f 區的下面implementation unituse 變數的。 <=== 謝謝大家的熱心幫助. ===================引 用 blue 文 章=================== Hi,您好: 若把它放到 PRIVATE 或 PUBLIC 中不行耶,會報錯 --> 若要放在 PRIVATE或 PUBLIC要加 TObject. (我不知是不是這樣稱呼),例如 procedure TForm1.add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string); 另,會出現 Access violation at address 的問題應該如 GrandRURU 所說 Mbdgt01 未被 Create 請先確認在 MDI 主程式是否確實被 Create, 謝謝! ===================引 用 feng2939 文 章=================== 謝謝 P.D. 幫忙解答, 我的狀況如下: 1. procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string);是宣告在 IMPLEMEMTATION 下, 而且一定要第一個 procedure‚ 才行.‚ 但若把它放到 PRIVATE 或 PUBLIC 中不行耶,會報錯. ‚ 還是我沒弄對? 2. 試了用 SELF 或 NIL 都不行, 狀況依舊... ===================引 用 P.D. 文 章=================== 1. 請問你的 procedure add_sal_pur_mnu_cat(t_bdga04,t_bdga05,t_bdga06:string); 是宣告在那裡? PRIVATE, PUBLIC 或 IMPLEMEMTATION 下? 2. 我之前學習DELPHI時, 被前輩告知, 除了主FORM由 DELPHI自動CREATE外, 其他最好都自己創建(CREATE), 而且最好不要用 (APPLICATION), 改用 SELF 或 NIL
------
DVF |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |