Description: A float column with a long decimal digit value that where inserted from My SQL Query Browser or My SQL Command Line, cannot be updated/modified using VB6 and ADO 2.7/2.8.
I'm using: My SQL 4.1.11-nt-max My SQL Client 5.0.0 My ODBC 3.51.11-2 MDAC 2.8/2.7 VB6 Windows XP SP2 Error Message: Row cannot be located for updating. Connection String = "Provider=MSDASQL.1; User Name=root; Password=password; Extended Properties=""driver=; DATABASE=test; OPTION=3; PORT=0; SERVER=localhost""" cn.
Hello I am using VB6, SQL server 2000, and ADO 2.5, and saw this problem recently.
Thanks Joe I must disagree as this is not a bug in My ODBC! scid=kb; EN-GB;q190727&GSSNB=1 you will find all the ways ADO uses to update dataset: ad Criteria Key = 0 Uses only the primary key ad Criteria All Cols = 1 Uses all columns in the recordset ad Criteria Upd Cols = 2 (Default) Uses only the columns in the recordset that have been modified ad Criteria Time Stamp= 3 Uses the timestamp column (if available) in the recordset From what I see in logs, and by common sense, I can say neither 1 nor 2 (Default) will work as you can't match FLOATs with "=": UPDATE `test`.`testbug11970` SET `f`=1.23123001098632810e 002 WHERE `id`=1 AND `f`=1.44977005004882810e 002 Changing update criteria to 0 (PK only) corrects the situation: UPDATE `test`.`testbug11970` SET `f`=1.23123001098632810e 002 WHERE `id`=1 Consider following, and working, example: Private Sub bn Bug11970_Click(By Val sender As System.
This error is specific to Access 97 and versions of Connector/ODBC earlier than 3.51.02.