Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Recordset BOF adoEOF indicate that it is empty but it is not empty

Recordset BOF adoEOF indicate that it is empty but it is not empty

From: Addie Gisser <agisser_at_hand.com>
Date: 23 May 2002 13:53:28 GMT
Message-ID: <acis8o$1cl@dispatch.concentric.net>


I am using ADO and the Oracle provider (using VC++ and Win2K OS) and I am running into an interesting problem. I have a table with a record that is created once during configuration of the program. From that point on the record is only read or updated and the primary keys of the record are never modified. The way the program is written the record can be accessed by multiple threads at the same time (i.e. one thread reading the record while another is updating a field).

This works 99% of the time, but under certain conditions when I check the recordset after a read (select * from ...) it appears empty (i.e.BOF and adoEOF are both true) and there is not any error generated ( I suspected a deadlock since that can occur in SQLServer, but there was no error generated and a read in Oracle does not grab any locks).

Since I never expect this record to be empty the program logs an application error that includes the SQL statement that was executed in order to create the recordset. When I execute this SQL manually the record is present. According to my understanding of Oracle, reading a record and updating the same record from separate threads should never interfere with each other.

So my question is what is going on or how can I go about figuring out what is going on. The Oracle log files did not reveal anything. The only unique thing about this record is that it contains a BLOB and the BLOB is one of the fields that gets updated.

Thanks in advance for any help,

Addie Received on Thu May 23 2002 - 08:53:28 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US