RFX_Binary Updates Unchanged CByteArray Data

ID: Q160073


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), used with:
    • Microsoft Visual C++, 32-bit Editions, version 4.2


SUMMARY

The MFC ODBC classes attempt to update the CByteArray data for a record each time you move off that record, even if the data was not changed.

If you have a field that cannot be updated, you may receive an error when the update fails. For example, if your recordset contains a SQL Server TIMESTAMP column, you may see the following error:

Can't update a TIMESTAMP column.
The RFX_Binary() function is incorrectly casting the BYTE* data member of the CByteArray to a CByteArray*. Because of this, the CByteArray data always appears to have been changed since the last update. In the DoFieldExchange() of your recordset class, replace calls to RFX_Binary() with calls to the with RFX_Binary_Fix() function.

The following files are available for download from the Microsoft Download Center. Click the file names below to download the files:


Rfxbinfx.exe

For more information about how to download files from the Microsoft Download Center, please visit the Download Center at the following Web address
http://www.microsoft.com/downloads/search.asp
and then click How to use the Microsoft Download Center.

Microsoft 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++ version 5.0.


MORE INFORMATION

The RFX_Binary() function is called from within the CRecordset DoFieldExchange() function to handle CByteArray data.

Once you have downloaded Rfxbinfx.exe and run the .exe to extract the RFX_Binary_Fix source code, include RFXBINFX.H in your recordset CPP file.

In your implementation of the DoFieldExchange() function, change each call to RFX_Binary to a call to the RFX_Binary_Fix function.

Additional query words: kbVC420bug kbDSupport IsFieldDirty SetFieldDirty BLOB

Keywords : kbfile kbDatabase kbMFC kbODBC kbVC kbVC500fix
Version : winnt:4.2
Platform : winnt
Issue type : kbbug


Last Reviewed: December 14, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.