This content has been marked as final. Show 2 replies
From the limited information available, it sounds like a bug to me. I'd recommend opening a SR with support and providing a testcase so further investigation can occur, and a bug filed if necessary.
Thanks Greg, it must be a bug, that's what we also think here. We have found a workaround for now but knowing the conditions better may help some other guys.
I can give some more precisions :
1. Our current method to add records in C++ is to call AdNew without parameters, then set all the values one by one and then update.
2. Our reason for that is to better manage column by column error messages when they occur during SetValue or Update errors.
3. We have some tables having multiple keys. Some of these keys i.e. not nullable columns are floating numbers (maybe not a good design but historical)
4. If we Sort the table on one of these floating key columns and then call AddNew without parameters, the AddNew fails like I described in my previous message.
We're pretty sure this comes from these not nullable key columns and the fact we add a new record without passing any value (but this should be supported)
5. This method does work with Oracle OLEDB 32 bits, SqlServer 32 & 64 bits, Access 32 & 64 bits but not on Oracle 64 bits
6. Our Workaround is finally to call AddNew and pass all parameters at the same time ; we don't call setvalue column by column neither update (and we lose fine detection and custom treatment of our errors column by column)
It seems it works for us. Maybe can help others. I don't know how to file an SR at Oracle, and I still have a simple example ready in VBScript (not C++ finally). If someone can help us to submit, he's welcome.