如何把图片存入数据库!

jl_ytl 2004-02-18 03:04:14
image控件,sql2000数据库,image型字段!
如何把image上的图片存入数据库?
存入的内容如何显示到image控件上?
...全文
69 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
borland_boy 2004-06-25
  • 打赏
  • 举报
回复
注意:此种存储方法存入的数据必须用下面对应的方法才能读出!

如果要存JPG需要#include <jpeg.hpp>

存:
ADOQuery2->Edit();
DBImage1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
TBlobField * pField=(TBlobField *)ADOQuery2->FieldByName("截图");
TADOBlobStream * pmem=new TADOBlobStream(pField,bmWrite);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->Assign(DBImage1->Picture->Graphic);
pBitmap->SaveToStream(pmem);
delete pBitmap;
delete pmem;
DBImage1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
ADOQuery2->Post();

取的话在ADOQuery2的AfterScroll事件里加入
void __fastcall TFrmMain::ADOQuery2AfterScroll(TDataSet *DataSet)
{
TBlobField * pField=(TBlobField *)ADOQuery2->FieldByName("截图");
TADOBlobStream * pmem=new TADOBlobStream(pField,bmRead);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->LoadFromStream(pmem);
DBImage1->Picture->Assign(pBitmap);
if (pmem->Size==0 )
{
DBImage1->Picture =NULL;
}
delete pBitmap;
delete pmem;
}
//---------------------------------------------------------------------------
如果出现有时不显示图片可考虑设置AfterRefresh\AfterPost\AfterEdit等事件触发时调用AfterScroll事件

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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