Subject | Re: [ib-support] Re: Crossed signals? |
---|---|
Author | Louis Kleiman |
Post date | 2002-03-26T21:48:21Z |
If you are using the BDE, then turn on SQL Monitor and see what UPDATE statements are being sent by each client. The BDE will only update the fields that were actually changed by each client. So, if User A changes first name, and User B changes last name, then it is extremely possible that both updates will make it into the record because User A's UPDATE looks like:
UPDATE table set FirstName = 'UserAFirstName' WHERE keyfield = keyvalue
and User B's UPDATE looks like
UPDATE table set LastName = 'UserBLastName' WHERE keyfield = keyvalue
All this depends on the value of UpdateMode on your TTable. If it is upWhereAll, the second update will fail; if it is anything else, the update will succeed. upWhereAll constructs a WHERE clause for the update that check to make sure that the value of every field in the row is the same as it was when the user started editing the row; upWhereChanged checks to make sure that the fields you changed (and the key field(s))still have the same value as when you started; and upWhereKeyOnly only uses the KeyFields in the WHERE clause.
HTH
Louis Kleiman
SSTMS, Inc.
UPDATE table set FirstName = 'UserAFirstName' WHERE keyfield = keyvalue
and User B's UPDATE looks like
UPDATE table set LastName = 'UserBLastName' WHERE keyfield = keyvalue
All this depends on the value of UpdateMode on your TTable. If it is upWhereAll, the second update will fail; if it is anything else, the update will succeed. upWhereAll constructs a WHERE clause for the update that check to make sure that the value of every field in the row is the same as it was when the user started editing the row; upWhereChanged checks to make sure that the fields you changed (and the key field(s))still have the same value as when you started; and upWhereKeyOnly only uses the KeyFields in the WHERE clause.
HTH
Louis Kleiman
SSTMS, Inc.
----- Original Message -----
From: Joe Martinez
To: ib-support@yahoogroups.com
Sent: Tuesday, March 26, 2002 4:05 PM
Subject: Re: [ib-support] Re: Crossed signals?
> It is often advised that one should use a 'remote' type of connection when
> working on the server. Use localhost: in front of the connection
> string. Try something like "localhost:C:\DB\xxx.db" and see if that helps.
>
I had them try that, and it didn't help.
> You'll probably get a lot of comments on using TTables and using the
> BDE. I'll repeat it: Don't use TTables (use TQueries) and try to avoid the
> BDE (use IBO or FIBPlus. Don't know whether IBX will work with BCB4).
> Note that Firebird 1.0 is available.
Yes, I am planning on moving to IBO for the next version of my application, but
unfortunately, that doesn't help us now.
If it's a transaction problem caused by the BDE, I can sort of understand that,
but why would data get mixed from two different clients? Isn't IB/FB smart
enough to keep transactions from different clients separate, regardless of what
BDE does?
-Joe
Yahoo! Groups Sponsor
ADVERTISEMENT
To unsubscribe from this group, send an email to:
ib-support-unsubscribe@egroups.com
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
[Non-text portions of this message have been removed]