C++ Builder显示access数据库图片问题

duying86 2011-05-18 03:10:43
下面代码中
TBlobStream * bm =new TBlobStream(ADOTable1image,bmRead);//创建于图片对象相连的流
一行总提示invalid class typecast错误,望解决!是用ado连接的数据库,图片存在image字段中,ole类型。


void __fastcall TForm1::Form1OnDataChange(TObject *Sender, TField *Field)
{
char * buffer=new char[ADOTable1image->BlobSize];//分配内存,ADOTable1image为图片字段对象
TBlobStream * bm =new TBlobStream(ADOTable1image,bmRead);
TBlobStream * bm =new TBlobStream(ADOTable1image,bmRead);//创建于图片对象相连的流
bm-> Position=0;
bm->Read(buffer,bm->Size);//读入数据
long length=0,bmpLength;//length为‘BM’的前(包括BM)字节数,bmplength为位图文件长度
for(;;)
{//查找'BM'标志
if(buffer[length++]=='B')
if(buffer[length++]=='M')
break;
}
bmpLength=bm->Size-(length-2);//计算位图位文件长度
TFileStream * dstFile=new TFileStream("temp.bmp",fmCreate);//创建临时位图文件
dstFile->Write(buffer+length-2,bmpLength);//将位图数据写入文件
delete dstFile;//释放内存
delete bm;
delete buffer;
DBImage1->Picture->LoadFromFile("temp.bmp");//用TImage控件显示图片





}
...全文
200 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaffy 2011-05-19
  • 打赏
  • 举报
回复
一行总提示invalid class typecast错误
难道是没有INCLUDE相关类型头文件
xjq2003 2011-05-19
  • 打赏
  • 举报
回复
c++builder对数据库中BLOB字段读写 收藏
SQL Server2000 我用的image 类型
//存储
TBlobField *blob_pic=(TBlobField *)UserMod->TInsert->FieldByName("IMAGE");
try
{
blob_pic->LoadFromFile(app_path+"\\temp\\temp.jpg");
}
catch(...)
{
ShowMessage("图像存盘失败!");
}

UserMod->TInsert->Post();
UserMod->TInsert->Refresh();
}

//读取
TBlobField *blob_pic=(TBlobField *)DBGrid4->DataSource->DataSet->FieldByName("IMAGE");
try
{
blob_pic->SaveToFile(app_path+"\\temp\\temp1.jpg");
Image9->Picture->LoadFromFile(app_path+"\\temp\\temp1.jpg");
}
catch(...)
{
ShowMessage("图像读取失败!");
}
delete blob_pic;



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xjq2003/archive/2009/02/17/3898634.aspx
junyuyiyi 2011-05-19
  • 打赏
  • 举报
回复
跟着学习。
echoliujiaohui 2011-05-19
  • 打赏
  • 举报
回复
刚开始学习,有点看不懂

vip_ouyang 2011-05-19
  • 打赏
  • 举报
回复
有没有高手推荐C语言一些入门点的书籍啊。。小弟是新来的
duying86 2011-05-19
  • 打赏
  • 举报
回复
我的图片是已存在数据库中的,就不用“存储”的代码了。那些“先存储图片后读取图片”中的读取代码能通用吗?
无情猫 2011-05-18
  • 打赏
  • 举报
回复
为什么不把路径存数据库里呢

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧