CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

ODBC 中 CLongBinary 对象的访问问题

楼主more_chan(michael)2005-08-01 14:34:19 在 VC/MFC / 数据库 提问

m_pSet   是一个CRecordSet的派生类指针  
  m_phtoto   是一个CLongBinary对象,与表中一存放二进制数据的列绑定,  
  希望能向数据库中添加一2102Byte大小的图片数据,尝试进行如下操作:  
   
                    m_pSet->AddNew();  
   
                    GlobalFree(   m_pSet->m_photo.m_hData   );  
  m_pSet->m_photo.m_hData   =   GlobalAlloc(   GHND   ,   2102   );  
  LPSTR   pStr   =   (LPSTR)GlobalLock(   m_pSet->m_photo.m_hData   );  
   
  fstream   photofile;  
  photofile.open(   "photo.bmp"   ,   ios::in|ios::binary   );  
  photofile.read(   pStr   ,   2102   );  
  photofile.close();  
   
   
                    m_pSet->Update();  
   
                    GlobalUnlock(m_pSet->m_photo.m_hData);  
   
   
  但在数据库中未添加进任何数据,不过文件数据经验证的确已读入内存,还望各位大虾指点,多谢!!!! 问题点数:50、回复次数:2Top

1 楼shotgun79(炮炮龙)回复于 2005-08-01 20:57:50 得分 0

if(!pPicRs->IsOpen()) pPicRs->Open(CRecordset::snapshot);  
  if(!pPicRs->IsBOF()) pPicRs->MoveFirst();  
  pPicRs->AddNew();  
  pPicRs->m_Pic.m_dwDataLength   =   fileStatus.m_size;  
  HGLOBAL     hGlobal   =     GlobalAlloc(GPTR,     fileStatus.m_size);      
                    pPicRs->m_Pic.m_hData     =     GlobalLock(hGlobal);      
   
  file.ReadHuge(pPicRs->m_Pic.m_hData,fileStatus.m_size);  
  pPicRs->m_PageID   =   pageID;  
  pPicRs->m_PicType   =   nPicType;  
  pPicRs->m_PicName   =   picName;  
  pPicRs->SetFieldDirty(&pPicRs->m_Pic);      
                    pPicRs->SetFieldNull(&pPicRs->m_Pic,     FALSE);      
  pPicRs->Update();  
  GlobalUnlock(hGlobal);      
  pPicRs->Close();  
  delete   pPicRs;  
  我的一段代码,处理图片文件,其中fileStatus是CFileStatus对象。图片从文件系统中的图片取得Top

2 楼hisky1983()回复于 2005-08-03 12:31:14 得分 0

cimage   c;  
  CFileStatus   fileStatus;    
          file.GetStatus(fileStatus);  
  c.Open();  
  c.AddNew();  
  c.m_imagename=imagename;  
          c.m_projectname=projectname;  
          c.m_datatime=CTime::GetCurrentTime();  
          c.m_image.m_dwDataLength=fileStatus.m_size;  
  HGLOBAL   hGlobal=   GlobalAlloc(GPTR,fileStatus.m_size);//申请存放图像数据的空间。    
          c.m_image.m_hData   =   GlobalLock(hGlobal);  
  file.ReadHuge(c.m_image.m_hData,fileStatus.m_size);//向m_Image读图像数据。  
  c.SetFieldDirty(&c.m_image);//标志数据库已经修改;    
          c.SetFieldNull(&c.m_image,FALSE);//设置记录为NULL;    
  c.Update();//刷新数据库的记录    
          GlobalUnlock(hGlobal);    
          c.Close();  
          return   TRUE;Top

相关问题

  • ODBC访问。
  • 对象访问出错
  • 关于用ODBC访问Excel
  • 通过 ODBC 访问 Oracle
  • ADO.net和ODBC访问问题???
  • 如何用String访问已有对象?
  • 访问对象问题??高手请进
  • 装配件怎样访问Session对象?
  • 子对象方法怎么访问父对象成员
  • 子对象方法怎么访问父对象成员?thanks

关键词

  • 数据库
  • 数据
  • ppicrs
  • hdata
  • filestatus
  • pset
  • photofile
  • hglobal
  • globallock
  • globalalloc

得分解答快速导航

  • 帖主:more_chan

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo