如何对SQLSERVER中的BINARY类型写数据?
ybbqy 2003-11-08 10:02:41 在VC下用。
VARIANT varBLOBWord;
SAFEARRAY *psaWord;
SAFEARRAYBOUND rgsabound[1];
rst->Open((_bstr_t)sql, (IDispatch*)cnn,
ADODB::adOpenStatic, ADODB::adLockOptimistic, ADODB::adCmdText);
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = word->lWordLen;
psaWord = SafeArrayCreate( VT_UI1, 1, rgsabound );
for (long i = 0; i < word->lWordLen; i++)
SafeArrayPutElement (psaWord, &i, word->byWord+i);
varBLOBWord.vt = VT_ARRAY | VT_UI1;
varBLOBWord.parray = psaWord;
rst->AddNew();
rst->PutCollect("w_id", _variant_t(word->lId));
rst->GetFields()->GetItem("w_word")->AppendChunk(varBLOBWord);
rst->PutCollect("w_md5", _variant_t(word->szWordMd5));
rst->PutCollect("w_priv", _variant_t(word->lPriv));
rst->Update();
如果SQLSERVER中的数据类型是BINARY会出现错误,如果改成别的二进制类型如IMAGE就没事,为什么会这样,我应该怎么做才是正确的?