您的位置:首页 > 数据库 > Oracle

VC ADO Oracle 修改BLOB

2011-06-11 17:51 274 查看
CString strSql;
_CommandPtr m_pCom;
m_pCom.CreateInstance(__uuidof(Command));
m_pCom->AcitveConnection = xxx;//数据库连接
m_pCom->CommandType = adCmdText;
strSql.Format("update table set A=?,BLOB(字段名)=? where id = '%s'",id);
m_pCom->CommandText = (_bstr_t)strSql;
CFile saveFile;
CFileException e;
saveFile.Open(filePath,CFile::modeRead | CFile::typeBinary,&e);
long nsize = saveFile.GetLength();
char * m_buff;
SAFEARRAY * psa;
SAFEARRAYBOUND rgsbound[1];
rgsbound[0].lLBound = 0;
rgsbound[0].cElements = nsize;
psa = SafeArrayCreate(VT_UI1,1,rgsbound);
SafeArrayAccessData(psa,(void HUGEP **)&m_buff);
saveFile.ReadHuge(m_buff,nsize);
saveFile.Close();
variant_t varBLOB;
varBLOB.vt = VT_ARRAY |VT_UI1;
varBLOB.parray = psa;
SafeArrayUnaccessData(psa);
m_pCom->Parameters->Append(m_pCom->CreateParameter(_T("@A"),adVarWchar,adParamInput,-1,_variant_t(xx)));
m_pCom->Parameters->Append(m_pCom->Createparameter(_T("@BLOB"),adVarBinary,adParamInput,-1,varBLOB));
m_pCom->Execute(NULL,NULL,adCmdText);


由于环境原因 不能拷贝代码 以上为手动输入,如有笔误或错误请谅解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: