社区
数据库及相关技术
帖子详情
怎么实现图片存入SQL数据库中,且在BCB环境下可以调用呢
nilinm
2006-06-13 09:39:18
图片为JPG或其他格式
...全文
662
15
打赏
收藏
怎么实现图片存入SQL数据库中,且在BCB环境下可以调用呢
图片为JPG或其他格式
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kanshu123
2006-06-26
打赏
举报
回复
论坛里好象有不少,
起码我以前问过,
你可以找下
CityHost
2006-06-26
打赏
举报
回复
高度关注中
i_love_pc
2006-06-26
打赏
举报
回复
同样关注
deansroom
2006-06-25
打赏
举报
回复
mark
ccdjk
2006-06-25
打赏
举报
回复
学习学习
flowercity
2006-06-24
打赏
举报
回复
学习
极速小王子
2006-06-22
打赏
举报
回复
学习!
nilinm
2006-06-22
打赏
举报
回复
各位大侠,我试了JPG一种格式的,但如果是存取多种格式的图片,要怎么写能具体点吗,上面的代码有点乱。
wxch
2006-06-15
打赏
举报
回复
正在关注...
极速小王子
2006-06-13
打赏
举报
回复
mark
kwokwinglau
2006-06-13
打赏
举报
回复
呵呵,来电你慢了零秒。
netsys2
2006-06-13
打赏
举报
回复
ZT:
数据类型一定要是image
存jpeg到SQL数据库:
if(OpenPictureDialog1->Execute())
{
ADOQuery1->Edit();
TBlobField *Field = (TBlobField*)ADOQuery1->FieldByName("photo");
Field->LoadFromFile(OpenPictureDialog1->FileName);
ADOQuery1->Post();
}
//以下是从数据库读jpeg
#include <clipbrd.hpp>
TStream *Stream1;
TJPEGImage *Pjp;
Pjp=new TJPEGImage();
ADOQuery1->Open();
try
{
Stream1=ADOQuery1->CreateBlobStream(ADOQuery1->FieldByName("treenodes"), bmRead);//treenodes是存放jpeg内容的字段,它的类型一定要用image
Pjp->LoadFromStream(Stream1);
//Image2是TDBImage组件,它的DateSource,和FieldName属性要空着
Image2->Picture->Bitmap->Assign(Pjp);
delete Stream1;
}
__finally
{
ADOQuery1->Close();
delete Pjp;
}
下面是别人的更好的方法,可存各种图形
以下是讀出各種類型的圖片的程序,支持ADO,BDE或TClientDataSet
#define PICTURE_MAP__(TBit) {TBit *PG = new TBit(); \
try {PG->LoadFromStream(TmpStream);\
Pic->Assign(PG); \
}\
catch(...)\
{delete PG ;\
return false;\
}\
delete PG;\
}
//----------------------------------------------------------------
//該模板將二進制字段中的圖像(GIF或JPG等等)使用Assign方法轉為TPicture,TBitmap等等。
template <class T >
bool LoadPhotoFromField(TField *F_Photo,const AnsiString Format,T *Pic)
{if(!F_Photo->DataSet->Active) return false ;
if(F_Photo->IsNull) return false ;
else
{TStream *TmpStream = F_Photo->DataSet->CreateBlobStream(F_Photo,bmRead);
if(Format == ".JPG" || Format == ".JPEG")PICTURE_MAP__(TJPEGImage )
else if(Format == ".BMP") PICTURE_MAP__(Graphics::TBitmap)
// else if(Format == ".GIF") PICTURE_MAP__(TGIFImage )
else if(Format == ".ICO") PICTURE_MAP__(TIcon)
else if(Format == ".WMF" || Format ==".EMF") PICTURE_MAP__(TMetafile)
else return false ;
}
return true;
}
#undef PICTURE_MAP__(TBit)
//如果要支持GIF,那你要安裝支持GIF的VCL類。
支持多種格式
存入:
if(OpenPictureDialog1->Execute())
{DataSet->Edit();
TBlobField *Field = (TBlobField*)DataSet->FieldByName("photo");
Field->LoadFromFile(OpenPictureDialog1->FileName);
DataSet->FieldByName("photoFormat")->AsString =
ExtractFileExt(OpenPictureDialog1->FileName).UpperCase();
DataSet->Post();
}
kwokwinglau
2006-06-13
打赏
举报
回复
代码片段
sqlStr+=":Pic,"
-------------------
:PIC是传递参数。
TMemoryStream *MS = new(TMemoryStream);
AdvPicture1->Picture->SaveToStream(MS);
MS->Seek(0, soFromBeginning);
ADOLook->Close();
ADOLook->SQL->Clear();
ADOLook->SQL->Add(sqlStr);
ADOLook->Parameters->ParamByName("Pic")->LoadFromStream(MS,ftBlob);
ADOLook->ExecSQL();
---------------------------------------
//显示数据库中的图片,读图片(Jpg格式)
TMemoryStream *MemoryStream = new TMemoryStream(); //---一段内存地址
TJPEGImage *JpgImage= new TJPEGImage(); //初始化图像JPEG #include <jpeg.hpp>
try
{
dynamic_cast<TBlobField*>(Table1->FieldByName("image"))->SaveToStream(MemoryStream);
MemoryStream->Position=0;
JpgImage->LoadFromStream(MemoryStream);
image->Picture->Assign(JpgImage);
}
catch(...)
{
delete MemoryStream;
delete JpgImage;
}
delete MemoryStream;
delete JpgImage;
---------------------------------------
读:BMP格式
TBlobField *Field = (TBlobField*)ADOQueryDoc->FieldByName("Content");
Field->SaveToFile( "c:\\my.bmp" );
---------------------------------------
写图片.
TBlobField *Field = (TBlobField*)Table1->FieldByName("image");
if (OpenPictureDialog1->Execute())
{
image->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Field->LoadFromFile(OpenPictureDialog1->FileName );
Table1->Post();
}
---------------------------------------
//读
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;
---------------------------------------
2、至于存入数据库,如果指的是SQL,要注意,默认只能65536大小,请在查询分析器中执行下面的语句,使其支持2G(就是image字段能存储的最大大小)
exec sp_configure 'max text repl size',2147483647,
sxzqlzx
2006-06-13
打赏
举报
回复
设置成BLOB格式就行了
stevenjscn
2006-06-13
打赏
举报
回复
MARK
将
图片
保存到
数据库
中
、从
数据库
中
读取
图片
、显示
图片
、打印
图片
1、将
图片
作为其
中
的一个参数保存到
数据库
中
在项目
中
,一般是将
图片
转换成二进制流格式,然后保存到
数据库
中
。同时
数据库
表
中
存储
图片
的格式一般为image。此次项目,是将
图片
作为一个参数,和其他几个参数一起保存到
数据库
中
,和在网上搜索到的
图片
保存不太一样,此处稍作修改,但都是检测过的。 存储步骤: 1、搜索到
图片
的路径 2、读取
图片
并将
图片
转换成二进制流格式 3...
BCB
存取
图片
等信息!
<script type="text/javascript"
SQL
与ORACLE的对比
本人要讲的即不是单纯的
SQL
,也不是单纯的ORACLE,更不是评价谁好谁坏(意思不大),而是两种
数据库
之相同和异同据说比尔与艾里森在洗手间相遇,两个又是拥抱,又是KISS,不多久就吵了起来,比尔对查询分析器(
SQL
QUERY ANALYZE)赞不经绝口,艾里森嘿嘿冷笑,只说了一句话—
SQL
PLUS内秀。001、
SQL
与ORACLE的内存分配ORACLE的内存分配大部分是由INIT.ORA来决定
MS
SQL
中
image字段进行jpg
图片
的存取
//===========================================================================//
数据库
结构如下//---------------------------------------------------------------------------// if exists (se
shell
sql
plus执行
sql
文_如何通过 Shell 监控异常等待事件和活跃会话
作者 | JiekeXu来源 |JiekeXu之路(ID: JiekeXu_IT)转载请联系授权 |(微信ID:xxq1426321293)大家好,我是 JiekeXu,分开这么久很高兴又和大家见面了,今天分享下如何通过 Shell 监控异常等待事件和活跃会话。本文首发于微信公众号【JiekeXu之路】,欢迎点击上方蓝字关注我吧!前几天有网友在墨天轮平台上问到“如何写一个定时任务监控...
数据库及相关技术
1,178
社区成员
18,938
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章