2 Replies Latest reply: Apr 25, 2012 12:20 PM by 931873 RSS

    Critical : Sort recordset on a non-nullable column floating numbers (64b)

      Oracle Client 11.2.0 , version 64 bits - and OleDB provider "Oracle for Oracle" on Windows 7 64 bits

      If we sort a recordset on a column of type addSingle and having "non nullable" attribute set to true, the sort of the recordset works ok BUT the recodrset seems to be in a corrupt sate afterwards.
      It's no longer possible to use it. For example AddNew to add a new record fails without consistent information on the error.

      (The same operation works correctly with SqlServer and Access 64b drivers as well as Oracle client 11.2.0 version 32 bit and OleDB provider "Microsoft for Oracle")

      We can provide a test program in C++ if needed.

      Thanks in advance,

      Philippe Belanger
        • 1. Re: Critical : Sort recordset on a non-nullable column floating numbers (64b)
          gdarling - oracle
          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.

          • 2. Re: Critical : Sort recordset on a non-nullable column floating numbers (64b)
            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.

            Philippe B.