FIX: MFC ODBC Dynaset Cannot Update a SQL Server 6.0 View

ID: Q151686


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++ 32-bit Edition, versions 2.0, 2.1, 4.0, 4.1, 4.2


SYMPTOMS

An MFC database application cannot update a dynaset-type CRecordset based on a View in a SQL Server 6.00 data source, even if the operation observes the SQL Server requirement that updates through Views only update a single base table. The update will give the following error:

Error: failure updating record.
The cursor does not include the table being modified
State:37000,Native:16933,Origin:[Microsoft][ODBC SQL Server Driver] [SQL Server]


CAUSE

This error is caused by a bug in SQL Server 6.0 server cursors. For more information on this problem, please see the following article in the Microsoft Knowledge Base:

Q149917 FIX: 16933 Error on View Updated Through Server Cursor


RESOLUTION

One workaround is to use snapshots with the cursor library to update the View. You can use a dynaset with a View as long as you are not updating it. If you must use a dynaset and need to update, try using a permanent or temporary table instead of a View, or open a separate recordset as a snapshot.


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug is corrected in Microsoft SQL Server version 6.50.


MORE INFORMATION

This problem only occurs when using a dynaset update. The recordset is opened correctly. The dynaset is scrollable forward and backward and MoveNext() and MovePrev() also work correctly but dynaset does not allow updates.

Additional query words:

Keywords : kbprg kbDatabase kbMFC kbODBC kbVC
Version : winnt:
Platform : winnt
Issue type : kbbug


Last Reviewed: January 31, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.