Cursor Type and Column Updatability May Change with Some Sort Orders
Microsoft has released a new fix for MS SQL Server 7.0
Microsoft has released a new fix for MS SQL Server 7.0
SYMPTOMSRead more
A cursor declared as DYNAMIC is actually open as KEYSET/OPTIMISTIC.
An ODBC application may receive the following error message when SQL Server updates a result set:
...runtime error 40038, can't assign value to non-updatable field
A call to the SQLColAttribute SQL_DESC_UPDATABLE property made on the column present in the ORDER BY clause returns SQL_ATTR_READWRITE_UNKNOWN (#define SQL_ATTR_READWRITE_UNKNOWN 2). Any subsequent update attempt on the result set column returns the error message mentioned earlier.
The error message occurs if all of the following conditions are true:
SQL Server is installed with a case and accent insensitive sort order (for instance, sort order 44 and sort order 54) or with a Cyrillic case-insensitive sort order (sort order 106).
A post Microsoft SQL Server 7.0 Service Pack 3 (SP3), Sqlservr.exe, hotfix with a product version between 7.00.979 and 7.00.1019 is installed.
The SELECT statement involved is of type SELECT ORDER BY.
The column involved in the ORDER BY clause is a char or a varchar data type.