为什么JPG文件不能存入数据库?急!(50分)

  • 主题发起人 hzyingmu
  • 开始时间
H

hzyingmu

Unregistered / Unconfirmed
GUEST, unregistred user!
我执行了以下程序:
:sfilename:=OpenPictureDialog.FileName;
:DBImage1.Picture.Assign(Image1.Picture.LoadFromFile(sfile));
:ADODataSet1.UpBatch;
:能够存入BMP文件,但不能存入JPG文件,不知什么原因?请高手赐教!
我在Uses中已包含了Jpeg单元。
我用的是Delphi5+Access2000
 
用dbimage是不行的,它只支持bmp
 
这样肯定行

要用image

var
P: Tmemorystream;
g : Tjpegimage;
begin
Screen.Cursor := crHourGlass;
with ADOQuery2 do
begin
try
edit;
p := Tmemorystream.Create;
g := Tjpegimage.Create;

g.Assign(Image1.Picture.Graphic);
g.SaveToStream(p);

p.Position:=0;
TBlobField(FieldByName ('zp')).LoadFromStream(p);
post;
finally
p.Free;
g.Free;
end;
end;
Screen.Cursor := crdefault;
end;
 
不是delphi的问题,而是dbimage不支持jpg,你可以直接保存
用adoquery1.fieldbyname('').loadfromfile
就明白不是delphi的问题了
 
jpg一般只能当作文件流来存
 
怎样用流的方式存储图片?请给出保存时的具体代码,谢谢!!
 
ggqq的方法不行吗?
 
上边有了阿
而且delphi帮助也有
 
可以将jpg存入,但是好像文件会被变大,跟bmp差不多大小,没什么意义,
 
直接用文件流
 
一点意见:
其实你用Access2000,如果直接将图形文件(或图片)存进数据库不是一个好办法,
如果图少还好办,图片一多对数据库的效率和数据库文件的大小都会有很大的影响。
不如只把图形文件的文件名,存入数据库,而单独将图型文件保存在特定的目录中
(如果文件名包含全路径则不需要特定目录),这样数据库体积可以大大减小,
支持的文件格式也多,编程也方便。
 
接受答案了.
 

Similar threads

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