Re: Help on resolving record conflicts with ADO
- From: "Bill Hicks" <waylien_no_spam@xxxxxxxxx>
- Date: Fri, 24 Feb 2006 01:07:15 +0800
An additional note on this issue:
I've been doing testing for several hours since my original post. It seems
that if I whittle down my original sql statement to just 1 table, the
conflict-resolution code I have in my PostError event works. So that leads
me to believe that there's a problem with uniqueness with my query. The odd
thing is that the query simply tacks on 1 field from another table - I'm
left outer joining the other table, and incidentally there can only be a
max. of 1 joined records per primary table. I'm using the key from the
primary table in the query.
I've also tried BetterADO, but it has not helped get passed my section of
code for re-syncing. I may not be using it properly, but I was reading
somewhere that setting the Primary Table property (something like that) in
the control (BetterADO) would eliminate any question about which table was
the primary table, so any updates on that table should work properly.
This may help - it seems that even though I'm specifically setting ['Update
Criteria'].Value := adCriteriaKey, when I do Action := daRetry I am faced
with the exact same PostError problem. It's as if the setting of the update
criteria didn't take.
"Bill Hicks" <waylien_no_spam@xxxxxxxxx> wrote in message
news:43fd6f59$1@xxxxxxxxxxxxxxxxxxxxxxxxx
I am using Delphi 7, SQL2000, ADO.
I am trying to find a clean way to resolve update conflicts between users
and am stuck. I have a SQL table that has a primary key. If a user
attempts to update a record that's already been updated by another user,
the OnPostError event fires and allows me to handle the conflict. So far
so good. Now, if I try to run the following code because the user has
choosen to overwrite the other users changes, I run into the same
OnPostError as soon as the retry occurs. It seems as though there is not
enough information to complete the update.
TAdoDataset(DataSet).UpdateCursorPos;
TAdoDataset(DataSet).Properties['Update Criteria'].Value :=
adCriteriaKey;
TAdoDataset(DataSet).RecordSet.Resync(adAffectCurrent,
adResyncUnderlyingValues);
Action := daRetry;
I thought that setting ['Update Criteria'].Value := adCriteriaKey was
going to allow me to use just the key field to make the update, but it
seems like ADO still cannot locate the record in question.
Thanks in advance.
Bill Hicks
.
- Follow-Ups:
- Re: Help on resolving record conflicts with ADO
- From: Brian Bushay TeamB
- Re: Help on resolving record conflicts with ADO
- References:
- Help on resolving record conflicts with ADO
- From: Bill Hicks
- Help on resolving record conflicts with ADO
- Prev by Date: Re: Help on resolving record conflicts with ADO
- Next by Date: Re: Help on resolving record conflicts with ADO
- Previous by thread: Re: Help on resolving record conflicts with ADO
- Next by thread: Re: Help on resolving record conflicts with ADO
- Index(es):
Relevant Pages
|