怎样处理数据库中的图象字段

dave 2000-05-22 06:17:00
我的C++B显示自带的 BIOLIFE.DB 中的图象很正常,但换成ACCESS库就不行,报错“Bitmap image is not valid"
请问错在那里,怎样解决。
对ACCESS 库中的图象字段有什么要求,要做什么预处理。
...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
macai 2001-02-06
  • 打赏
  • 举报
回复
我发现用上面Wingsun的方法是可以的,但必须先以它的写方式,再读,否则是会出错。但我发现了一个问题,小图没有问题,大图显示有乱。请Wingsun解释。
Hank 2000-11-01
  • 打赏
  • 举报
回复
TO:Winsun
你的方法解决DB格式的数据库没有问题,但是对Access格式的数据库依然没有办法,难道你没有测试吗?
Wingsun 2000-05-29
  • 打赏
  • 举报
回复
//读
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TBlobStream * pmem=new TBlobStream(pField,bmRead);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->LoadFromStream(pmem);
Image1->Picture->Assign(pBitmap);
delete pBitmap;
delete pmem;
//写
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TBlobStream * pmem=new TBlobStream(pField,bmWrite);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->Assign(Image1->Picture->Graphic);
pBitmap->SaveToStream(pmem);
delete pBitmap;
delete pmem;
dave 2000-05-29
  • 打赏
  • 举报
回复
我还不是很明白,能否给出例程...
dthl 2000-05-28
  • 打赏
  • 举报
回复
先用TBlobStream读出来,然后调到DBIMAGE里面去
Wingsun 2000-05-27
  • 打赏
  • 举报
回复
ACCESS中的字段类型应该是OLE对象类型,而在SQL Server中应该是Image类型。
对他进行处理是要通过TBlobStream来读取。
Hank 2000-05-26
  • 打赏
  • 举报
回复
我也存在同样的问题。数据库用ACCESS97,而可恨的是即使在Database Explorer中也显示错误:“Bitmap image is not valid" 。而且用SQL-SERVER7.0也存在同样的问题!
dave 2000-05-24
  • 打赏
  • 举报
回复
我用DBIMAGE控件
ploto 2000-05-23
  • 打赏
  • 举报
回复
请问你读写数据库中图像字段时是怎么读写的?应该用TBlobStream读写才是。

1,178

社区成员

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

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