PRB: MFC DB Classes Don't Update NULL Field Values to Non-NULLLast reviewed: August 7, 1997Article ID: Q130956 |
2.00
WINDOWS NT
kbtool kbprg kbcode kbprb
The information in this article applies to:
SYMPTOMSWhen the MFC Database classes that come with Visual C++ version 2.0 are used, any field that has a NULL value cannot be updated to a non-NULL value successfully. After opening a recordset on a SQL Server table that has fields with NULL values, the Edit() and Update() methods of the recordset fail to update the value of the field to a non-NULL value. For example, the following code isn't able to do the update:
CMyRecordSet rs; rs.Open(); rs.Edit(); rs.m_Name="Test"; //m_Name allows NULLs and is NULL for current record rs.Update();The Update() function doesn't return any error, but the m_Name value is still set to NULL.
RESOLUTIONUse the MFC Database Classes that come with Visual C++ version 2.1 or above. Otherwise, for the field to be updated, force the bNull flag of the SetFieldNull() method to FALSE before calling the Update(). The following code works:
CMyRecordSet rs; rs.Open(); rs.Edit(); rs.m_Name="Test"; //m_Name allows NULLs and is NULL for current record rs.SetFieldNull(&rs.m_Name, FALSE); rs.Update(); STATUSThis behavior is by design.
|
Additional reference words: 2.00 3.00 ODBC
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |