我正在通过 ADO 从 excel 单元格读取数据
while (!pRec->adoEOF)
{
_variant_t a = pRec->Fields->GetItem(long(0))->Value;
//todo
}
Run Code Online (Sandbox Code Playgroud)
如何检查是否a相等NULL
a.bstrVal==NULL
Run Code Online (Sandbox Code Playgroud)
它没有用。
我怀疑你想要:
a.vt == VT_NULL // Represents a NULL received from a database
Run Code Online (Sandbox Code Playgroud)
或者
a.vt == VT_EMPTY // Represents an uninitialized object
Run Code Online (Sandbox Code Playgroud)
数据库空值在VARIANT.
但是,如果它来自 Excel,您也有可能得到一个空字符串而不是 null。
a.vt == VT_BSTR && SysStringLen(a.bstrVal) == 0
Run Code Online (Sandbox Code Playgroud)