[DUG] Strange access error on application close...
David Brennan
dugdavid at dbsolutions.co.nz
Wed Aug 9 14:52:08 NZST 2006
I can't really help with why you are getting this error but I do recall that
we had problems (ie A/Vs) with our application if it exited without calling
Application.Run first in a very similar situation to yours (ie login being
cancelled).
I never worked out why beyond determining that it didn't happen if we called
Application.Run and then Application.Terminate (actually slightly more
complicated in our case but it boils down to that).
Your situation with changing the text avoiding the A/V makes very little
sense but it may just be a symptom. Your real problem may be something
internal to Delphi getting upset with the Application not being set to Run.
Just a thought.
David.
-----Original Message-----
From: delphi-bounces at ns3.123.co.nz [mailto:delphi-bounces at ns3.123.co.nz] On
Behalf Of Dave O'Brien
Sent: Wednesday, 9 August 2006 11:27 a.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Strange access error on application close...
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.
_______________________________________________
Delphi mailing list
Delphi at ns3.123.co.nz
http://ns3.123.co.nz/mailman/listinfo/delphi
More information about the Delphi
mailing list