用VC++,如何从数据库(SQL Server)中读取图片字段?没有什么大的数据类型?>

用VC++,怎么从数据库(SQL Server)中读取图片字段?没有什么大的数据类型?>
如题!

------解决方案--------------------
sql server里使用image字段可以存储字节数据,不仅仅是图片,其他字段varbinary就不要用了,有长度限制

读取写入的方法其实就是ADO安全数组对象的使用

以下是写入

char *pBuf = (char *)m_pBMPBuffer;
char *pBuf2 = NULL;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];

CString strSql = "select * from blobtest where 1=0 ";

pRs.CreateInstance(__uuidof(Recordset));
pRs-> Open(_bstr_t(strSql),
_variant_t((IDispatch *)pConn,true),
adOpenDynamic,
adLockOptimistic,
adCmdText);

pRs-> AddNew();///添加新记录
///保存数据到库中
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = filesize; //图片或者二进制数据字节大小
psa = SafeArrayCreate(VT_UI1,1, rgsabound); ///创建SAFEARRAY对象
for (long i = 0; i < (long)filesize; i++)
SafeArrayPutElement(psa, &i, pBuf++); ///将pBuf指向的二进制数据保存到SAFEARRAY对象psa中
varBLOB.vt = VT_ARRAY | VT_UI1; ///将varBLOB的类型设置为BYTE类型的数组
varBLOB.parray = psa; ///为varBLOB变量赋值
pRs-> GetFields()-> GetItem( "img ")-> AppendChunk(varBLOB);//加入BLOB类型的数据
SafeArrayDestroy(psa);
}
pRs-> Update();

if (pRs)
if (pRs-> State == adStateOpen)
pRs-> Close();