Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.tools -> ODBC "No Rows Affected" for floating point number in Oracle
I have a problem with the ODBC driver for Oracle when I am trying to update a float column.
Database: Oracle 8.0.4.0
ODBC driver: Oracle 8.01.63.00
I am using the cursor library, and MFC recordsets with RFX_Single for the float columns.
The database test table looks like:
CREATE TABLE Test (
lKey NUMBER(10) NOT NULL, fFloat FLOAT(23) NULL
Inserting into the table is no problem, but when I am trying to update
a row I get the error 'No rows were affected by the update or delete
operation.'
This only happens when I am trying to update a row with a float value
that was previously saved with decimals (e.g. 0.13) in the database (I
think). Rows with float values with no decimals are ok to update.
Whether the update will go through or not depends on what was earlier
saved in the floating point column - certain numbers cannot be
updated.
Since I am the only one using the database, it is not a problem of
someone else updating the table between my fetch and update.
When I turn off the cursor library, there are no problems with this. If I change the size of the float in the database table to 47 or higher it also works fine.
I have also tried the Intersolv 3.10 and Merant 3.60 ODBC drivers. The Merant 3.60 driver is just like the Oracle driver - do not work with floats unless the size is 47 or higher. The Intersolv 3.10 is the other way around - works well if the float column is of size 46 or less, otherwise not.
Any suggestions what to do to make it work with Oracle ODBC and cursor library?
Thanks
Niklas Lindvald
Received on Tue Jun 05 2001 - 06:10:41 CDT
![]() |
![]() |