如题,谢谢!
例如:
select b_picture,n_picturebytes from abc
例如:
select b_picture,n_picturebytes from abc
解决方案 »
- 运行.reg文件//会出现提示信息,如何去掉?
- 感谢Ryanwen
- 结构体变量,编译时出现 error C2106: '=' : left operand must be l-value
- 求设置和获取CStatic,Cedit,CListBox,CListCtrl,CScrollBar,CcomboBox等常用控件的风格的 方法
- 请教有关打印速度的问题
- VC程序在没有安装VC的机器上发布的问题! 急呀
- 关于基类和继承类!
- 如何在一个全局函数中向某个窗口反送消息呢?
- 模拟工作环境的训练软件,用什么工具开发好?
- 我只有62分了,请问用程序如何将一个ListView的样子转换成BMP,包括Columns和Items
- 算法请教,如何用boid 算法模拟生物群体的移动。
- 想养良好的编码习惯,不知道这两本书哪一本更好?或者大家推荐推荐更好的书?
ADO读写BLOB字段的代码
读取数据// 读取数据
vValue = m_pRecordset->Fields->GetItem(bstrSegName)->Value;
// 读取数据大小
nDataSize = m_pRecordset->GetFields()->GetItem(bstrSegName)->ActualSize;
nDataType = vValue.vt;if (nDataType == (VT_ARRAY | VT_UI1))
{
m_lpData = new char[nDataSize];
memset(m_lpData, 0, nDataSize);
char* pBufTemp = NULL;
SafeArrayAccessData(vValue.parray, (void **)&pBufTemp);
for (int i = 0; i < nDataSize; i++)
*(((char*)m_lpData)+i) = *(pBufTemp+i);
SafeArrayUnaccessData (vValue.parray);
}
存入数据
BOOL SaveBLOB(CString strSegName, UINT& nDataSize, char* pBuf)
{
_bstr_tbstrSegName = strSegName;
VARIANTvarBLOB;
SAFEARRAY*psa;
SAFEARRAYBOUNDrgsabound[1];
// 保存BLOB数据
if(nDataSize > 0)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nDataSize;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)nDataSize; i++)
SafeArrayPutElement (psa, &i, pBuf+i);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
m_pRecordset->GetFields()->GetItem(bstrSegName)->AppendChunk(varBLOB);
}
m_pRecordset->Update();
return TRUE;
}
是不是类型不支持呢?
CADORecordset* pRs = new CADORecordset(g_DB.m_pDB);
strSql = "select b_picture,n_picturebytes from tb_trainfaultdetail where to_char(d_passtime,'yyyy-mm-dd hh24:mi:ss')='" + faultinfo.strPassTime + "' and to_char(d_affirmtime,'yyyy-mm-dd hh24:mi:ss')='" +
faultinfo.strSendTime + "' and s_faultorder='" + faultinfo.strFaultNO + "'"; TRACE(strSql + "\n");
if (pRs->Open((LPCTSTR)strSql))
{
if (!pRs->IsEOF())
{
pRs->MoveFirst();
pRs->Edit();
CFile infile;
infile.Open(".\\debug\\cache\\fault\\fault.jpg",CFile::modeRead|CFile::typeBinary);
int nSize = infile.GetLength();
BYTE *pBuf = new BYTE[nSize ];
infile.Read(pBuf,nSize);
pRs->AppendChunk("b_picture",pBuf,nSize);
pRs->SetFieldValue("n_picturebytes",nSize);
pRs->Update();
delete []pBuf;
}
}
// 关闭记录集,释放空间
pRs->Close();
delete pRs;出现的错误提示如下:
First-chance exception in TFDSClient.exe (MSDASQL.DLL): 0xC0000005: Access Violation.
Loaded 'C:\Program Files\Common Files\System\ado\msader15.dll', no matching symbolic information found.
First-chance exception in TFDSClient.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.