BYTE* data = new BYTE[3];
data[0] = 32;
data[1] = 34;
data[2] = 231; SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 3;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)3; i++)
SafeArrayPutElement (psa, &i, data++);
VARIANT varBLOB;
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
////////////////////
m_pRecordset->AddNew();
m_pRecordset->Fields->GetItem(_variant_t("id"))->Value=_bstr_t("1928");
FieldPtr dataField = m_pRecordset->Fields->GetItem("dataField");
dataField->AppendChunk(varBLOB);///加入BLOB类型的数据 m_pRecordset->Update();
上面是我的测试代码,调试时在AppendChunk处发生了问题,调试进去后,发现问题发生在msado15.tli中AppendChunk函数的AppendChunk返回了负的HRESULT,诚请各位大虾虾米帮助!
data[0] = 32;
data[1] = 34;
data[2] = 231; SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 3;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)3; i++)
SafeArrayPutElement (psa, &i, data++);
VARIANT varBLOB;
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
////////////////////
m_pRecordset->AddNew();
m_pRecordset->Fields->GetItem(_variant_t("id"))->Value=_bstr_t("1928");
FieldPtr dataField = m_pRecordset->Fields->GetItem("dataField");
dataField->AppendChunk(varBLOB);///加入BLOB类型的数据 m_pRecordset->Update();
上面是我的测试代码,调试时在AppendChunk处发生了问题,调试进去后,发现问题发生在msado15.tli中AppendChunk函数的AppendChunk返回了负的HRESULT,诚请各位大虾虾米帮助!
快崩溃了...
1.我要读写varbinary应该怎么做?
2.在数据库里存取文件应该采用什么字段?
[email protected]
pStream.CreateInstance(__uuidof(Stream));
variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
pStream->PutType(adTypeBinary);
pStream->Open(varOptional, adModeUnknown, adOpenStreamUnspecified, _bstr_t(), _bstr_t());pStream->Write(varBLOB);
pStream->Position=long(0);
_variant_t vbin = pStream->Read(filesize);
pRs->GetFields()->GetItem("dataField")->Value= vbin; //添加varbinary类型的数据 pRs->Update();
pStream->Close();
这另外一种方法,应该是最直接的
多谢兄台!
如果是女的就嫁给你了,可惜啊,呵呵,50分全归你了。