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/

Reply via email to