ADO 从ACCESS数据库读取图片并显示出来
来源:互联网 发布:移动不给开4g网络 编辑:程序博客网 时间:2024/05/28 04:56
try
{
//获得文件的大小
long nSize = theApp.m_pRecordset->GetFields()->GetItem("Data")->ActualSize;
if(nSize <= 0)
{
return;
}
_variant_t varBLOB;
varBLOB = theApp.m_pRecordset->GetFields()->GetItem("Data")->GetChunk(nSize);
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
if(BYTE *pBuffer = new BYTE [nSize+1]) ///重新申请必要的存储空间
{
char *pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
memcpy(pBuffer,pBuf,nSize); ///复制数据到缓冲区m_pBMPBuffer
SafeArrayUnaccessData (varBLOB.parray);
CDC* pDC;
IPicture *pPic;
IStream *pStm;
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE,nSize);
LPVOID pvData = NULL;
if(hGlobal != NULL)
{
if((pvData = GlobalLock(hGlobal)) != NULL)
{
memcpy(pvData,pBuf,nSize);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
if(SUCCEEDED(OleLoadPicture(pStm,nSize,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight;
pPic-> get_Width(&hmWidth);
pPic-> get_Height(&hmHeight);
CRect rect;
//获取控件相对于屏幕的位置
GetDlgItem(IDC_SHOW)->GetWindowRect(&rect);
//转化为相对于控件的位置
ScreenToClient(rect);
double fX,fY;
fX =rect.Width();
fY =rect.Height();
pDC=GetDC();
if(FAILED(pPic-> Render(*pDC,rect.TopLeft().x,rect.TopLeft().y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))
AfxMessageBox( "图片显示失败! ");
pPic-> Release();
}
else
AfxMessageBox( "加载图片失败! ");
}
}
delete [] pBuffer;
pBuf=0;
}
}
}
catch (_com_error e) {
// ::MessageBox(NULL,(LPCTSTR)e.Description(),"",MB_OK);
}
- ADO 从ACCESS数据库读取图片并显示出来
- 从指定的路径中读取图片,并显示出来
- PowerBuilder从数据库读取并显示图片。
- Jsp从数据库读取并显示图片
- 从内存读取图片信息,显示出来
- Jsp 读取oracle数据库图片,显示出来
- 从数据库中读取Blob对象图片并显示
- C#从数据库中读取二进制数据,并显示图片
- 从数据库中读取Blob对象图片并显示
- 从数据库中读取Blob对象图片并显示
- Java从数据库中读取Blob对象图片并显示
- 从数据库读byte[] 并显示出来
- C# 读取Access多条数据并显示出来
- 将图片写入数据库并显示出来
- WPF中把图片保存到数据库,并从数据库提取出来显示
- 图片保存到数据库和从数据库读取图片并显示(C#)
- 图片保存到数据库和从数据库读取图片并显示(C#)
- 图片保存到数据库和从数据库读取图片并显示(C#)
- WebGis设计模式
- mysql学习笔记之mysql常用的命令
- hdu 1042 N!
- MYEclipse 对核心包tr.jar访问受限的问题
- 字符集和字符编码(Charset & Encoding)
- ADO 从ACCESS数据库读取图片并显示出来
- JSONObject与JSONArray的使用
- 显示图片实现上一张下一张功能
- Android编程示例之——横竖屏切换动画
- 数据库编码问题-数据库乱码
- javascript bas64
- 复习C++ 走一遍基础 留下笔记----{三}
- 失败团队领导者的10个特征
- (1)让你不再害怕指针--细说指针