ID: Q141352
1.50 WINDOWS kbprg kbbuglist kbfixlist
The information in this article applies to:
Only the first 64K of the CLongBinary data is transferred correctly to a record.
A bug in CRecordset::UpdateInsertDelete() causes only the first 64K of data to be transferred correctly to a record. This is caused by using a far pointer instead of a huge pointer.
Change line 2453 in the Dbcore.cpp file, and rebuild the MFC library.
Change it from:
   const BYTE FAR* lpData =
            (const BYTE FAR*)::GlobalLock(pLongBinary->m_hData);
to:
   const BYTE __huge * lpData =
            (const BYTE __huge *)::GlobalLock(pLongBinary->m_hData);
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem was corrected in Microsoft Visual C++ for Windows, version 1.51.
Additional reference words: 2.50 KBCategory: kbprg kbbuglist kbfixlist KBSubcategory: MFCDatabase
Keywords          : kbDatabase kbMFC kbODBC kbVC kbbuglist kbfixlist
Version           : 1.50
Platform          : WINDOWS
Solution Type     : kbfixLast Reviewed: September 21, 1997