0

我正在尝试使用带有 C++ 的 OLE DB 在 MS Sql Server 中插入一个 unsigned __int64 类型的值,用于具有 sql_variant 数据类型列的列。尽管对于所有其他数据类型,我都可以这样做。

代码片段:

HRESULT hrinit = CoInitialize(NULL);

Cvar_table table;
HRESULT hro = table.OpenAll();

table.m_ValueId = 1;
table.m_dwValueIdStatus = DBSTATUS_S_OK;

unsigned __int64 ui = 1234567;
VARIANT vt;// <- This is not OK! I can not insert it
vt.vt = VT_UI8;
vt.ullVal = ui;

unsigned int ui4 = 1234567;
VARIANT vt4;  //<- This is OK! I can insert this.
vt4.vt = VT_UI4;
vt4.ullVal = ui4;

table.m_Value =  vt;
table.m_dwValueStatus = DBSTATUS_S_OK;

HRESULT hr = table.Insert();
if (FAILED(hr))
{
    _tprintf(_T("Insert failed: 0x%X\n"), hr);
}
table.CloseAll();
CoUninitialize();
return 0;

我想知道 sql_variant 是否支持 VT_UI8?提前致谢。

4

0 回答 0