如何把图片保存(.bmp.jpg等)(和读取)到delphi的数据库中去,(100分)

  • 主题发起人 主题发起人 chensoft
  • 开始时间 开始时间
C

chensoft

Unregistered / Unconfirmed
GUEST, unregistred user!
请问,如何把图片保存(.bmp.jpg等)(和读取)到delphi的数据库中去,
希望能 详细一点!! 谢谢!!
my _email: chen_yibo@163.net

 
在blob字段中可以加入图片的,
tblobfield(table1.fieldbyname('图象').asblob).loadfromfile(opendialog1.filename);

 
我这各种保存方式,给你E过去,不过看后要给分的。
 
wyh919:
谢谢您,请给我也发一份!
xjwsxgs@163.net

另外,请教怎样才可以给您分?
 
wyh919:
谢谢您,请给我也发一份.100分
swdyx@21cn.com
 
用流,很简单。
 
procedure TForm1.Button1Click(Sender: TObject);
var MemStm : TMemoryStream;
BlobStm: TStream;
begin
MemStm := TMemoryStream.Create;
MemStm.LoadFromFile('ReadMe.bmp');
Query1.Edit;
BlobStm:=Query1.CreateBlobStream(Query1.FieldByName('C2'), bmReadWrite);
try
MemStm.SaveToStream(BlobStm);
except
end;
BlobStm.Free;
MemStm.Free;
end;
 
读取图片文件(.bmp.jpg等)并保存delphi的数据库中去:
if OpenPictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
 
还是有错误吗,请大家再帮以下帮忙,谢谢1!
 
还有错误?告诉你一个简单的不用动脑的方法:
加一个dbimage控件,然后从其他的图片copy,past到dbimage里然后就可以了
不要忘了dbimage与数据库连接
 
在form里放一個openpicture 及 dbimage
然后放一個button
在button里這樣寫就可以啦
var
picturename,extname:string;
Jpegimage:TJpegImage;
begin
with Qorder_master do begin
if isempty then exit;
if openpicture.Execute then begin
picturename:=openpicture.FileName;
extname:=extractfileext(picturename);
if uppercase(extname)='.BMP' then
begin
edit;
dbimage.Picture.LoadFromFile(openpicture.filename);
Post;
end;
if (uppercase(extname)='.JPG') OR (uppercase(extname)='.JEPG') then
begin
Jpegimage:=Tjpegimage.Create;
try
Jpegimage.LoadFromFile(picturename);
edit;
dbimage.Picture.Graphic.Assign(Jpegimage);
Post;
finally
jpegimage.Free;
end;
end;
end;
Edit ;
end;
end;
記得在uses 里加入jpeg 單元啊﹗可以存dbimage里允許的所有格式文件﹗
 
在数据库中设一字段为BLOB类型,可以存各种文件,假设字段名为picture,fname为文件名
proceture TForm1.LoadBtnClick(sender:TObject)
var
stream1:TFileStream;
begin
with query1 do
begin
close;
SQL.clear;
Sql.add('select picture from table1');
open;
edit;
end;

stream1:=TFileStream.create(fname.fmOpenRead);
try
query1picture.LoadFromStream(stream1);
finally
stream1.free;
end;
query1.post;
end;

读取时可用同样的方法,用SaveToStream函数就可以了。
 
这样的问题在大富翁里太多了,
看一下分类问题:图形图象
或搜索一下“图象”
就可以了,
有好多中方法!
 
其实跟保存文件一样的道理啊
 
用陈晨的方法最简单,且不易出错,只是记住要POST才好。
 
同意XYGZ的说法
 
tblobfield(table1.fieldbyname('图象').asblob).loadfromfile(opendialog1.filename);
 
建议提问之间线检索一下帖子,这种帖子实在是很多了
 
wyh919
我是用sql2000,图片有1万来张,保存进去读出来很慢,有什么办法使它快起来吗?
请给我也发一份!50分
hncslwf@sina.com

 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
890
DelphiTeacher的专栏
D
后退
顶部