Thanks for the response, Rob.
Interestingly, I have just changed from using the TADOTable
objects for adding/deleting/editing the database table data and
have instead now implemented those functions in TADOQuery
objects. The problem appears to have been solved. I just
follow the TADOQuery methods with either an ADOQuery.Requery([])
method invoation or the sequence of ADOQuery.Close then
ADOQuery.Open (either has the the desired result).
In this case its a pretty straightforward small application with
only two distinct tables, i.e. there are no Master/Detail
relationships to worry about.
Normally, for more complex databases (eg with relationships
between tables) I would use the SQL approach as you have
intimated.
Eric
Date: Wed, 16 May 2012 09:49:30 +1200
From:
[email protected]
To:
[email protected]
Subject: Re: [DUG] MSSQL DBGrid Refresh
Hi
I don't use the ADO components much but it sounds like a
caching issue. I would definately NOT use table methods and
do it all from SQL. Its much cleaner that way and you can see
exactly what's going on, rather than letting a table component
do the magic or running its own queries !
Cheers
Rob
On 16/05/2012 9:39 a.m., Eric A wrote:
No, I've tried the Requery method and as I
understand it the Requery method is effectively doing the
same as the Open and Close sequence, i.e. forcing the
select statement to be reissued against the database.
For record deletion I call the nbDelete button method on
the DBNavigator followed by closing/opening the ADOQuery
and that does result in the data being refreshed in the
DGBrid.
For adding and editing records I am using the ADOTable
"Append"/"Edit" and "Post" methods on the table followed
by closing/opening the ADOQuery (or ADOQuery.Requery) and
for some reason (which presently escapes me) the data is
not refreshed in the grid.
The question is should I even be using the ADOTable and
would I better off just issuing raw SQL commands via the
ADOCommand or similar component?
Eric
Date: Tue, 15 May 2012 21:09:31
+1200
From:
[email protected]
To:
[email protected]
Subject: Re: [DUG] MSSQL DBGrid Refresh
Hi Eric,
With AdoQuery you can try Requery method.
This article might help.
Hope it helps
Regards
Vik
On Tue, May 15, 2012 at
8:51 PM, Eric A
<[email protected]>
wrote:
I am using a DBGrid with an
ADOQuery component for display, with
modifications to table data (edits, deletes,
adds) being done using a ADOTable component.
CRUD operations are done using the table
methods rather than raw SQL code. There's a
lot of fields in the database table so coding
the operations in SQL would be a pain.
Despite trying to refresh the data in the
DBGrid by closing then re-opening both the
ADOTable and the ADOQuery component the data
in the DBGrid is not updated (unless I exit
the application and restart.
I've seen this problem mentioned in various
postings but haven't yet seen a solution. Can
someone supply the elusive technique to get
the DBGrid data to refresh after the ADOTable
data is changed?
Eric.
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: [email protected]
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [email protected]
with Subject: unsubscribe
--
vikas
_______________________________________________ NZ
Borland Developers Group - Delphi mailing list Post:
[email protected]
Admin:
http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to
[email protected]
with Subject: unsubscribe
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: [email protected]
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [email protected] with Subject: unsubscribe
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.2176 / Virus Database: 2425/5000 - Release
Date: 05/15/12
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post:
[email protected]
Admin:
http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to
[email protected] with Subject: unsubscribe