怎样将图片保存入SQL数据库中 (50分)

  • 主题发起人 主题发起人 asia1224
  • 开始时间 开始时间
A

asia1224

Unregistered / Unconfirmed
GUEST, unregistred user!
我的数据是通过MASKEDIT 设置过滤出来的,图片也一样,数据通过DBEDIT显示,
图片通过DBIMAGE显示,但我现在想把这些数据和图片存入另一个数据表中,我通过代码:
ADOTABLE1.APPEND;
ADOTABLE1.FIELDBYNAME('NAME').ASSTRING:=DBEDIT1.TEXT;
...
ADOTABLE1.POST;
实现,但我现在实现不了通过这样的方式把图片存入另一全数据表里.
 
TBlobField(AdoQuery1.fieldbyname('zip')).assign(DbImage.Picture);
 
//Filename:=图片文件名称/
pictu在数据库里为image字段
query1.Sql.Add('INSERT INTO T_Dir VALUES :pictu)');
ParamByName('pictu').LoadFromFile(Filename,ftBlob);
 
方法1:
在adotable里事先添加数据库字段(包括图片字段)

Adotable1blobfield.loadfromfile('c:/pic.bmp'); //
adotable1.post;

//这种方法只能添加bmp


方法2:
var jpeg_:tjpegimage;
s:tmemorystream;
begin
....
....
S := TMemoryStream.Create;

jpeg_.loadfromfile('c:/pic.jpg');
Jpeg_.SaveToStream(S);
S.Position := 0;

adoquery1.sql.clear;
.add('insert into tblname pictureField=:p_image');
adoquery1.ParamByName('p_image').LoadFromStream(s,ftgraphic);
adoquery1.ExecSQL;
.....
......

这种方法效率高,能添加jpeg
 
论坛里已经有答案了
 
我还是实现不了,我其实就想实现将已存在界面的DBIMAGE内的图片存入到SQL SERVER中。
帮帮忙,我真的没办法了。
 
可实现的方法很多,网上到处都是呀,可以多试试几种
 
Table.edit;
Table.FieldByName('图片').LoadFromFile('aaa.bmp');
Table.Post;
 
对不起,我的数据和图片是通过ADOTABLE的FILDERED从ADOTABLE 1 过滤出来的,我现在想把这些数据和
图片另存在另一个ADOTABLE 2 表里,数据通过ADOTABLE 2 .APPEND;
ADOTABLE 2 .FIELDBYNAME('').ASSTRING:=DBEDITE.TEXT;
实现了数据插入,但图片就是实现不了。
我不想通过指定图片路径存入另一个表里,因为我这个界面是作为查询界面并将数据另存为
另一个数据表的.
 
不能得的你白分
var
bmpStream: TMemoryStream;
begin
bmpSTream := TMemoryStream.Create;
Table1.FieldByName('图片').saveToStream(bmpStream);

Table2.edit;
Table2.FieldByName('图片').LoadfromStream(bmpStream);
Table2.Post;
end;
 
TO:崔占东
真的很感谢你,我学D时间不久,迫于工作,公司的数据库要完善,我只能凭我在校学的一些
D来作,我能和你通EMAIL吗,有时候遇到问题总觉得无助。对了,你上面提供的代码我用了,
它提示我没有定义 SAVETOSTREAM 和 LOADFROMSTREAM。
 
后退
顶部