views:

49

answers:

0

I've fixing a bug in an OLEDB driver implementation that provides access to our proprietary database.

The problem that I'm having is that after executing a command to write a newly inserted record to disk I need to update an identifier column defined as DBCOLUMNFLAGS_ISROWID. This column needs to hold the physical offset of the record on disk but I don't see how I can update it from within the OLDEDB driver.

I've been working on this bug for a few weeks now(on and off) but I'm not really getting anywhere so I was hoping someone could point me in the right direction. If DBCOLUMNFLAGS_ISROWID is not an appropriate column type for what I'm trying achieve then I can change it to something else if required.

Thank you.

I've worked out that there probably isn't a way to return the record id straight after processing the insert sql and that you probably need to configure or setup the OLEDB driver in such a way so that the consuming dataset knows that it needs to perform a select straight after the insert, this can be done either by somehow (I haven't worked this out yet) defaulting the "Update Resync" parameters to adResyncInserts + adResyncAutoIncrement or possibly by somehow identifying the recid column of the rowset as an autoincrement column so that the dataset knows that its needs to perform a select straight after an insert in order to get the recid value. After playing around with OLEDB to an MS Access database I came to the conclusion that its using the later method.