FIX: Only 64K of Data Transferred via CLongBinary

Q141352

1.50 WINDOWS kbprg kbbuglist kbfixlist ----------------------------------------------------------------------- The information in this article applies to: - The Microsoft Foundation Classes (MFC), included with: Microsoft Visual C++ for Windows, version 1.5 ----------------------------------------------------------------------- SYMPTOMS ======== Only the first 64K of the CLongBinary data is transferred correctly to a record. CAUSE ===== 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. RESOLUTION ========== 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); For more information on rebuilding the MFC library, refer to the Class Library User's Guide or to the Readme.txt file located in the Mfc\Src directory. STATUS ====== 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 : kb16bitonly kbDatabase kbMFC kbODBC kbVC
Issue type :
Technology : kbAudDeveloper kbMFC


Last Reviewed: September 23, 1997
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.