Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: Access violation at post after insert
Access violation at post after insert
Posted: 2000/09/05 13:41
 
I have an OCIQuery with an UpdateSQL. I sometimes get access violation after I insert new record and post it.

The new record is posted correctly (I can see it in the table), but access violation appears when ancestor's (TDataSet) Post calls Resync that calls GetNextRecords.

It seems access violation doesn't appear if all record is fetched (if I set FetchAll True, or I go over the grid attached the query before I insert the record).

Is it a bug or I do something wrong? What shall I do to get rid of access violation (I have too many records so I can't use FetchAll)?

I use D5, Ora8.1.5, Oci0.7.4 (but problem live with 0.9.0 too).

Balee
RE: Access violation at post after insert
Posted: 2000/09/05 16:11
 
Hi !

Has SELECT list of your query BLOB/CLOB/BFILE fields ? NCOCI8 has uncompleted (bugs) implementation of editing capabilities in case of such fields are in SELECT.
RE: Access violation at post after insert
Posted: 2000/09/05 16:51
 
Hi,

there are no BLOB/CLOB/BFILE fields, only
number(), char(), varchar2() and date fields.

Balee
RE: Access violation at post after insert
Posted: 2000/09/06 17:54
 
Hi,

the access violation does not seem to appear if FetchParams.RowsetSize was larger or equal than the count of records resulted by the query.

I've spent some time with debugging, so it seems access violation in oracommon8.dll appears at "call stack" by me:

Query1.Post >>
Resync (line 9535 D >>
FOCICursor.Skip(0) (line 4605 NCOciD >>
FStmt.Next (line 667 NCOciBuff) >>
Fetch (line 1741 NCOciWrapper) >>
NCOci.OCIStmtFetch (line 1710 NCOciWrapper)

Please help...
RE: Access violation at post after insert
Posted: 2000/09/06 18:08
 
Hi,

my previous reply is correct when RowsetSize=5 and the Query RecordCoutn=24 and I insert a record and then post it.

If RecordCount=24 and RowsetSize=10 then FOCICursor.Skip(0) succeeds and in inherited Resync GetNextRecords fails...

I'm a bit confused...