大侠你好,我用你的源代码来解决图片的存取问题,却发现程序编译时不能通过,请问如何解决这个问题? 另外这两个TBlobField;TstringField组件那有呀?;
[Error] Unit6.pas(42): Undeclared identifier: 'TJPEGImage'
[Error] Unit6.pas(47): Missing operator or semicolon
[Error] Unit6.pas(54): Undeclared identifier: 'SaveToStream'
附大侠提供的源代码:
搞定了图片在数据库的读取问题, 大家也看看
完整的代码如下:
//这个是保存的代码
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.