代码如下:
char *pBuf = m_pBMPBuffer;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
_RecordsetPtr pRecordset;
CString strSQL;
strSQL.Format("SELECT * FROM JOB_TASK ");
pRecordset.CreateInstance(__uuidof(Recordset));try
{
pRecordset->Open(_bstr_t(strSQL), theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
pRecordset->AddNew();
pRecordset->PutCollect("TaskName",_variant_t("asdf"));
pRecordset->PutCollect("CID",_variant_t((long)111111)); }
catch(_com_error e)///捕捉异常
{
AfxMessageBox("读取数据库失败!");///显示错误信息
}
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_nFileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement (psa, &i, pBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
pRecordset->GetFields()->GetItem("UPFILE")->AppendChunk((_variant_t)varBLOB);
}
pRecordset->Update();
pRecordset->Close();其他都没报错,就是执行到pRecordset->Update();时报错,另外为什么pRecordset提示中没有Edit()这个方法?
char *pBuf = m_pBMPBuffer;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
_RecordsetPtr pRecordset;
CString strSQL;
strSQL.Format("SELECT * FROM JOB_TASK ");
pRecordset.CreateInstance(__uuidof(Recordset));try
{
pRecordset->Open(_bstr_t(strSQL), theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
pRecordset->AddNew();
pRecordset->PutCollect("TaskName",_variant_t("asdf"));
pRecordset->PutCollect("CID",_variant_t((long)111111)); }
catch(_com_error e)///捕捉异常
{
AfxMessageBox("读取数据库失败!");///显示错误信息
}
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_nFileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement (psa, &i, pBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
pRecordset->GetFields()->GetItem("UPFILE")->AppendChunk((_variant_t)varBLOB);
}
pRecordset->Update();
pRecordset->Close();其他都没报错,就是执行到pRecordset->Update();时报错,另外为什么pRecordset提示中没有Edit()这个方法?
lob_loc IN BLOB,
amount IN OUT NOCOPY BINARY_INTEGER,
offset IN INTEGER,
buffer OUT RAW);