[DUG] Strange access error on application close...
Dave O'Brien
dave at ICCS.CO.NZ
Wed Aug 9 11:27:09 NZST 2006
Application... (Using DBGo)
begin
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmLogin, frmLogin);
if frmLogin.ShowModal = mrOK then
begin
seID := 0 ;
datamod.ADOQuery.SQL.Text := 'Select seID from Security...' ;
datamod.ADOQuery.Open ;
try
if not datamod.adoQuery.eof then
seID := datamod.ADOQuery.FieldByName('seID').AsInteger
else
ShowMessage('Invalid Username/Password') ;
finally
datamod.ADOQuery.Close ;
end ;
if seID <> 0 then
Application.Run ;
end ;
end.
With the above concept code I am getting a strange error.
"Access violation at address 00490742 in module'test.exe'. Read of
address 00C628C8"
The error occurs if the login is cancelled, does not occur if the login
is OK'd but the username/password is not found, so it has nothing to do
with "Running" the app.
If I change the end of the file to:
if seID <> 0 then
Application.Run ;
end
else
datamod.ADOQuery.SQL.Text := 'Anything but a blank string...' ;
end.
It now exits fine...
Any idea why I have to assign some text to the query or the app bombs on
exit? There are multiple TADOQuery's in the data module, so why don't I
have to assign something to each of them? Assigning a value only to that
query at design time also resolves the problem.
Cheers,
Dave.
More information about the Delphi
mailing list