搞定了图片在数据库的读取问题, 大家也看看.
完整的代码如下:
//这个是保存的代码
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
if opendialog1.Execute then
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
image1.Picture.LoadFromFile(opendialog1.FileName);
Assign(Image1.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
adoTable1.append;
TBlobField(adoTable1.FieldbyName('picture')).LoadFromStream(MS);
adoTable1.Post;
messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;
end;
//这个是读取的代码
procedure TForm1.Button2Click(Sender: TObject);
var tempstream:TmemoryStream; // tempstream:tstringstream 也可以
tempjpeg:TJPEGImage;
begin
try
tempstream:=TmemoryStream.Create(); // tempstream:=tmemorystream.create(' ');
TBlobField(adotable1.FieldByName('picture')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
end.
//可能这个对高手来说算个啥, 但是你我这样的人菜人还真是费了手脚.
请高人指教.