FIX: Assertion Fails When Use RFX_Text() w/ SQL_VARCHAR ColumnLast reviewed: September 18, 1997Article ID: Q120888 |
1.50 1.51 | 2.00
WINDOWS | WINDOWS NTkbprg kbfixlist kbbuglist The information in this article applies to:
The Microsoft Foundation Classes (MFC), included with: - Microsoft Visual C++ for Windows, versions 1.5 and 1.51 - Microsoft Visual C++, 32-bit Edition, version 2.0
SYMPTOMSAn assertion failure occurs when using RFX_Text() with a column of type SQL_VARCHAR that has a column width greater than 255 bytes.
CAUSEThe column width for a column with SQL type of SQL_VARCHAR is usually less than 256 bytes. The ASSERT on line 1747 is verifying that the column width is less than 256 bytes unless the column type is SQL_LONGVARCHAR or SQL_LONGBINARY. However some drivers implement SQL_VARCHAR type columns that allow more than 255 bytes; in which case, the assertion is not valid.
STATUSMicrosoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ versions 1.52 and 2.1.
RESOLUTIONThe problem occurs in the function CFieldExchange::GetColumnType(). Because this function is not virtual, there is no easy workaround. You could replace the GetColumnType function as well as the RFX_Text() function but that would entail adding all of the RFX_Text() function to your application to take care of a problem occurs only in a _DEBUG build because ASSERTs are removed in release builds. Instead of re-implementing RFX_Text here are two other approaches:
|
Additional reference words: 1.50 2.00 2.50 2.51 3.00 ORACLE
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |