DataModule Run之後會出現error |
答題得分者是:P.D.
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
Dear All
請幫我看看,程式才在剛一開始uses 資料庫就error
---------------------------
Project PR107.exe raised exception class EAccessViolation with message 'Access violation at address 004A6647 in module 'PR107.exe'. Read of address 00000058'. Process stopped. Use Step or Run to continue.
========================---------------------
程式共有2 個unit(unit Qry107;unit DM_;)
unit DM_; interface uses
SysUtils, Classes, DB, DBTables; type
TDM = class(TDataModule)
PUB_DB: TDatabase;
Qry107: TQuery;
dsR107: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end; var
DM: TDM; implementation {$R *.dfm} end.
--------------------
unit Qry107; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGrids, DB, DBTables, StdCtrls; type
TFQry107 = class(TForm)
DBGrid1: TDBGrid;
procedure FormCreate(Sender: TObject);
private
// procedure PUB_DB_CHECK;
{ Private declarations }
public
{ Public declarations }
end; var
FQry107: TFQry107; implementation uses DM_;
{$R *.dfm} procedure TFQry107.FormCreate(Sender: TObject);
begin
DM.PUB_DB.Connected := True;
DM.Qry107.Active := True;
end; end.
=======================================---------------------
1.資料庫是 MS-SQL 個人版(有設C_SFIS資料庫)
2.ODBC己設C_SFIS 資料庫
3.資料結構
Create Table R_WIP_TRACKING_T(
ASSEMBLE_NO CHAR(25) NOT NULL,
SERIAL_NUMBER CHAR(25) NOT NULL,
STATION_NO CHAR(2) NOT NULL,
SHIPPING_SN CHAR(25) NULL,
BOX_NO CHAR(25) NULL,
CARTON_NO CHAR(25) NULL,
MODEL_NAME CHAR(50) NULL,
MO_NUMBER CHAR(25) NULL,
QA_RESULT CHAR(1) Default 'Y',
WORK_FLAG CHAR(1) Default '1',
IN_STATION_TIME CHAR(8) NULL,
WARRANTY_DATE CHAR(8) NULL,
SHIPPING_TIME CHAR(8) NULL,
PRIMARY KEY (ASSEMBLE_NO,SERIAL_NUMBER,STATION_NO))
請各位大大幫小妹我看看
謝謝 doll_candy
本篇應該為問題, 不是發表, 請doll_candy妹多留意一點哦! 我幫你改過來
發表人 - P.D. 於 2003/08/06 00:32:17
------
doll_candy |
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
1.你的 DM_ 可能沒有被CREATE出來,
請查一下 Project->Options->Forms中, DM_ 是否放在Auto-create Form 中
如果不是請將右邊的Available Form 的 DM_ 拉回到 Auto-create
或者在TFQry107 的 form 下的onCreate Event 中寫下
procedure TFQry107.FormCreate(Sender: TObject);
begin
DM:= TDM.Create(self);
DM.PUB_DB.Connected := True;
DM.Qry107.Active := True;
end; 2.題外話, DM_, DM的命名這樣是不符規定的, 雖然沒有錯, 但就設計上來看,
十分不恰當, 請改為如 DM_Cust, 或 DM_XXXXX
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 各位大大您們好: 在過去偶有會有這種現象發生,但今天卻困擾了我一天,後看我以前程式,也沒啥差異,但卻可作業,不會有如此畫面. 後來我改了 工具列上的 Project/Options-->Directories/Conditionals 把 DataModules(DM_)上移, 結果error畫面不再有了. 不知是否正確,但可以了,雖然沒問到任何人,但也因POST出去之後,才讓我有此奇想. THANKS doll_candy我在回本篇時, 因故有事離開半小時, 回完才發現妳已經丟上來, 你的問題就是 DM未被CREATE, 原因是 FQuery Form 在 OnCreate 有呼叫到 DM , 但DM卻 放在 FQuery下才被Create, 當然就會當出了! 發表人 - P.D. 於 2003/08/06 00:36:53 |
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |