Visual c++ 在MFC中处理空BLOB-s
我有一个旧的MFC项目,我需要扩大。对于数据库操作,我使用从CRecordSet派生的类,并将Oracle BLOB绑定到CByteArray。当我检索一个带有空blob的行时,我得到一个大小为1字节、值为0xFF的数组。有没有办法检查数据库中的字段是否为空?或者这个0xFF数组实际上是一个表示空BLOB的值吗?好的,我找到了。函数为CRecordset::IsFieldNull,参数为绑定的CByteArray对象的地址,函数只能在Open()和Close()之间使用。大概是这样的:Visual c++ 在MFC中处理空BLOB-s,visual-c++,mfc,blob,Visual C++,Mfc,Blob,我有一个旧的MFC项目,我需要扩大。对于数据库操作,我使用从CRecordSet派生的类,并将Oracle BLOB绑定到CByteArray。当我检索一个带有空blob的行时,我得到一个大小为1字节、值为0xFF的数组。有没有办法检查数据库中的字段是否为空?或者这个0xFF数组实际上是一个表示空BLOB的值吗?好的,我找到了。函数为CRecordset::IsFieldNull,参数为绑定的CByteArray对象的地址,函数只能在Open()和Close()之间使用。大概是这样的: void
void CMySet::DoFieldExchange(CFieldExchange* pFX)
{
...
RFX_Binary(pFX, _T("[THE_BLOB]"), m_TheBlob, MAX_BLOB_SIZE);
}
void CMySet::ReadBlob(CByteArray& theBlob, BOOL& isNull)
{
m_strFilter = ...;
Open();
isNull = IsFieldNull(&m_TheBlob);
if (!isNull)
theBlob.Copy(m_TheBlob);
Close();
}