我想將DBImager中顯示的圖片保存到數庫中,用如下代碼卻提示有錯[Error] tproductlist.pas(2004): Incompatible types: 'Variant' and 'TPicture'
fieldvalues['imager_icon']:=dbimage1.picture;其後綴名.picture是否有錯,如果保存後要將其顯示在DBImager中用如下命令是否可以
dbimager1:=fieldbyname('image_icon').as圖片類型。
我用的是adoquery,image_icon類型已設為image,長度為16,
以上兩點請高手指點
fieldvalues['imager_icon']:=dbimage1.picture;其後綴名.picture是否有錯,如果保存後要將其顯示在DBImager中用如下命令是否可以
dbimager1:=fieldbyname('image_icon').as圖片類型。
我用的是adoquery,image_icon類型已設為image,長度為16,
以上兩點請高手指點
ACCESS数据库
procedure TForm1.Btn_SaveClick(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(ViewPic.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
ADOTable1.Append;
TBlobField(ADOTable1.FieldbyName('file')).LoadFromStream(MS);
ADOTable1.FieldByName('name').AsString:=Edit_Name.Text;
ADOTable1.Post;
Messagebox(Getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;读取
procedure TForm1.Btn_ViewClick(Sender: TObject);
var
tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
tempstream:=TStringStream.Create(' ');
TBlobField(ADOTable1.FieldByName('file')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
ViewPic.Picture.Bitmap.Assign(tempjpeg);//VIEWPIC是TIMAGE
Edit_Name.Text:=ADOTable1.FieldByName('name').AsString;
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
procedure Ttproductlist01.ImageSaveClick(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
adoimager:tadoquery;
imagerno:string;
begin
adoimager:=tadoquery.Create(self);
adoimager.Connection :=cudb01.ADOConnection1 ;
adoimager.SQL.Text :='select * from imager_list ';
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(dbimage1.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
adoimager.Append;
TBlobField(adoimager.FieldbyName('imager_icon')).LoadFromStream(MS);//TBlobfield是什麼意思????
adoimager.FieldByName('imager_name').AsString:=Edit_name.Text;
adoimager.Post;
Messagebox(Getactivewindow(),'圖像保存完畢!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;