Dear,
we are having a problem.
On a machine PC-Server (Linux S.O.) is running Informix.
We developed a (client-)Application A with Delphi7.
This application runs on two (or more) different machines (Windows S.O.), say
PC1 and PC2.
On PC1 we use a function F1 of A, using StartTransaction / CommittTransaction
[TDatabase object and some TQuery objects]
to make a work on more related tables of DB. Among these tables, we insert a
new row
in a table T1. Let suppose [we really do for debug, but on the same machine PC1
= PC2] to stop
the execution between StartTransaction and CommittTransaction.
On PC2 we a function F2 of A, just reading [TQuery with a simlpe select * from
T1 where ....]
the table T1.
a) if we use ORDER BY (on the primary key) in F2, while scrolling the records
through Next,
after a certain record R1, it appears a bad primary_key-value, for example
-1163005939,
for N times, and then it jumps again to the first scrolled record.
b) if we do not use ORDER BY in F2, after a certain record R2, the Next jumps
again to the first
scrolled record.
Note that N is exactly the number of records correctly given only in the case
b) and not in the case a)
[in particular the biggest N values of the primary key among those obtained in
the case b)].
Note that if we access on PC-Server through Telnet-service and Dbaccess
application and
start the same select of F2 :
c) if we use ORDER BY, soon after R1, we obtain a message reading something
like
"I cannot go on because of next is a locked record" [in practice we do not
obtain also those N records].
d) if we do not use ORDER BY, soon after R2, we obtain a message reading
something like
"I cannot go on because of next is a locked record".
We can consider normal the behavior in c) and d). We cannot understand the
cause of a) and b) weird behavior.
INFORMIX DB is set with SetLockModeToWait property.
The same happens with both values of TransIsolation property of our TDatabase
object:
tiReadCommitted and tiRepeatableRead
and with both values of the property RequestLive of our TQuery-select: true and
false.
Why our TQuery is not able to issue an exception because of the lock? On the
contrary, it goes in loop and,
in the case a), it also gives erroneous rows.
Any idea?
Regards,
Mauro.
----------
Questa email รจ stata verificata dal sistema centralizzato antivirus della
UniPlan Software
[Non-text portions of this message have been removed]
------------------------------------
-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [email protected]! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/delphi-en/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/delphi-en/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[email protected]
mailto:[email protected]
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/