The information in this article applies to:
SYMPTOMSUsing the MFC database classes with the Microsoft SQL Server ODBC driver versions 2.50.0121 or 2.50.0126 may cause an assertion failure after a call to SQLNumResultCols() in the CFieldExchange::GetColumnType() function. CAUSE
This error is caused by a bug in the ODBC driver that is exposed when the
cursor library is used, and happens after calling CRecordset::Requery() and
then trying to edit more than one record.
::SQLNumResultCols returns 0 in nResultColumns, which causes an assertion
on the next line. This is due to a bug in the driver which sets the number
of columns in the result set to 0. The subsequent call to ::SQLDescribeCol
will also fail with SQL State S1002 "Invalid Column number" regardless of
the column number specified.
RESOLUTIONTo work around this problem, use a dynaset instead of a snapshot or get the 2.65.0240 version of the SQL Server driver that is included with Visual C++ 5.0. STATUSMicrosoft has confirmed this to be a bug with the ODBC 2.5 components. This bug has been fixed in the 2.65.0240 version of the SQL Server driver that is included with Visual C++ 5.0. Additional query words: kbVC400bug DBRFX.CPP line 2185 line 2231
Keywords : kbDatabase kbMFC kbVC200bug kbVC210bug kbVC220bug kbVC400bug kbVC410bug kbVC420bug kbVC500fix |
Last Reviewed: July 22, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |