我建立一个image控件,保存学生管理系统中的学生照片,代码如下:
tblobfield(table1.FieldByName('s_photo')).Assign(image1.Picture);
为什么只能保存.bmp格式的文件,有没有方法可以保存其他格式的图片文件.
tblobfield(table1.FieldByName('s_photo')).Assign(image1.Picture);
为什么只能保存.bmp格式的文件,有没有方法可以保存其他格式的图片文件.
调试欢乐多
var
m:Tmemorystream;
begin
m:=Tmemorystream.Create;
try
m.LoadFromFile('c:\11.jpg');
adoquery1.SQL.Text:='insert pi (picture) values (:m)';
adoquery1.Parameters[0].LoadFromStream(m,ftGraphic);
adoquery1.ExecSQL;
finally
m.Free;
end;
end;//没测试... -_-!
tblobfield(table1.FieldByName('s_photo')).Assign(image1.Picture.Graphic);
清除试试这样:
image1.Picture.Graphic := nil;
还可以指定保存到数据库中的格式是bmp还是jpeg.调用方法ClearGraphic清除图形.
www.bluec.com.cn中有下载.
我在一本参考书上看到stream:tblobstream的定义,但运行提示没有tblobstream的类型定义
d5的话可以试试下面的方法:
从磁盘提取数据:
ADOTable1.Insert;
TBlobField(ADOTable1.FieldByName('s_photo').LoadFromFile('c:\1.jpg');
ADOTable1.Post;
从TImage提取数据:
var
AStream: TStream;
begin
ADOTable1.Insert;
AStream := ADOTable1.CreateBlobStream(ADOTable1.FieldByName('s_photo'), bmReadWrite);
Image1.Picture.Graphic.SaveToStream(AStream);
AStream.Free;
ADOTable1.Post;
end;
TBlobStream定义在DBTables单元,要使用的话需uses DBTables