如何往数据库中加入图片?(50分)

  • 主题发起人 主题发起人 龙河
  • 开始时间 开始时间

龙河

Unregistered / Unconfirmed
GUEST, unregistred user!
在表中有一个字段为图像类型,在增加一条纪录时,不能把图像存到数据库中。
我曾试用下面一段代码:
procedureTForm1.pictopenbtnClick(Sender:TObject);  
begin
opendialog1.execute;
  image1.picture.loadfromfile(opendialog1.filename);
end;  

procedureTform1.Savebtnclick(sender:TObject);  
var graphic1:TGraphic;  
begin
graphic1:=TGraphic.Create; 
graphic1.loadfromfile(opendialog1.filename);
   table1.insert; 
 table1.fieldbyname(′name′).asstring:=edit1.text;
   table1.fieldbyname(′telephon′).asstring:=edit2.text;
   table1.fieldbyname(′address′).asfloat:=(edit3.text);
   table1.fieldbyname(′zip′).asfloat:=(edit4.text);
   table1.fields[4].assign(graphic1);  
table1.post; 
graphic1.free; 
end;
但编译时graphic1:=TGraphic.Create;这句有错!请问把图像存到数据库中
需要那些控件?请详细些,最好附上源代码!小弟刚学Delphi,有许多问题要问,
只有50分送!
 
这样做不好吧,以后库不就变得很大
 
TGraphic是一个抽象类,不可以直接使用.如果要向BLOB字段存储数据(例如图象),可以使用
LoadFormFile方法,详细可以参阅DELPHI的帮助。
 
tblobfield(table1.fieldbyname('图象').asblob).loadfromfile(opendialog1.filename);
 

ms := TStringStream.Create('');
OpenPictureDialog1.InitialDir :=path1;
if (OpenPictureDialog1.Execute) and (trim(OpenPictureDialog1.filename) <> '') then
begin
File_Type := ExtractFileExt(OpenPictureDialog1.filename);
Image1.picture.loadfromfile(OpenPictureDialog1.filename);
Image1.Picture.Graphic.SaveToStream(ms);
if not (query1.State in [dsedit, dsinsert]) then
begin
query1.Edit;
end;
Ms.Position := 0;
(query1.Fieldbyname('image1') as Tblobfield).LoadFromStream(ms);
if query1.State in [dsedit] then
begin
query1.Post;
end;
end;
ms.Free;
end
 
后退
顶部