I am charged with preserving the old classic ASP application. The application uses the ODBC DSN system to connect to the MySQL database.
We had to upgrade servers recently to meet some licensing requirements. We were on Windows with MySQL 4.x and the 3.51 ODBC driver. We switched to a Linux machine running MySQL 5.1.43 and run the ODBC 5.1.6 driver on the new IIS server.
Users almost instantly started reporting such errors:
The string could not be found for updating. Some values are subject to change since it was last read.
This is a ghost error, and the same data changes on the same record at different times do not always lead to an error. It is also interrupted between different records, as in some cases, no matter what values I connect, I could not reproduce the defect in all the records.
This happens through 70 of about 120 scenarios, with a length of over 1000 lines.
The only consistency I can find is that in all the scripts that fail, they all read / write floats in the database. Fields that have a null value do not seem to crash, but if the database has a value of "19" (note the decimal places), which seems to fail, while "19.00" does not. Most floats are defined as 11.2.
ADODB . :
- * , ID =
udpdated recordID
- RecordSet.Update RecordSet.Close
RecordSet.Update.
, select/copy/update SQL, . (, UPDATE where , ), , , .
100 (grep 280+ ).
- , float/rounding?
, ?
,
-jc