当我把图片保存到数据库之后,再按table1.next的按钮时,出现上面的错误;而没保存图片以前,按TABLE1.NEXT的按钮,会在IMAGE1出现图片,为什么?????请各位帮帮忙吧.

解决方案 »

  1.   

    我把代码付上:
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,jpeg,
      StdCtrls, ExtCtrls, Db, DBTables, ExtDlgs, DBCtrls;type
      TForm1 = class(TForm)
        Image1: TImage;
        xinjian: TButton;
        next: TButton;
        Database1: TDatabase;
        Table1: TTable;
        prior: TButton;
        save: TButton;
        DataSource1: TDataSource;
        OpenPictureDialog1: TOpenPictureDialog;
        search: TButton;
        procedure xinjianClick(Sender: TObject);
        procedure nextClick(Sender: TObject);
        procedure priorClick(Sender: TObject);
        procedure saveClick(Sender: TObject);
        procedure searchClick(Sender: TObject);
      private
        { Private declarations }
      public
         bm :TjpegImage;
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses Unit3;{$R *.DFM}procedure TForm1.xinjianClick(Sender: TObject);begin
     
    if OpenPictureDialog1.Execute then
      begin
         table1.Open;
         table1.Append;
         bm:= TJpegImage.Create;
         bm.LoadFromFile(OpenPictureDialog1.FileName);
         image1.Picture.Graphic := bm;  end;
      
    end;procedure TForm1.nextClick(Sender: TObject);
    var ms: TStream;
        mb:TjpegImage;
    begintry
    if table1.Active then
      begin
        table1.next;
      try
      mb:= TjpegImage.Create;
      ms:= Table1.CreateBlobStream(table1.FieldByName('tu'), bmRead);
      mb.LoadFromStream(ms);
      image1.Picture.Assign(mb);
      mb.Free;
      ms.Free;
      except
          ShowMessage('图片显示出错!');
          exit;
        end;
      end;
    except
          ShowMessage('数据表没有打开!');
          exit;
        end;
    end;procedure TForm1.priorClick(Sender: TObject);
    var ms: TStream;
        mb :TjpegImage;
    begintry
    if table1.Active then
      begin
        table1.Prior;
      try
      mb := TjpegImage.Create;
      ms := Table1.CreateBlobStream(table1.FieldByName('tu'), bmRead);
      mb.LoadFromStream(ms);
      image1.Picture.Assign(mb);
      mb.Free;
      ms.Free;
      except
          ShowMessage('图片显示出错!');
          exit;
      end;
      end;
    except
          ShowMessage('数据库没有打开!');
          exit;
        end;
    end;procedure TForm1.saveClick(Sender: TObject);
    var
      ms: TStream;
    begin
     
      try
      ms := Table1.CreateBlobStream(table1.FieldByName('tu'), bmWrite);
      image1.Picture.Graphic.SaveToStream(ms);
      Table1.Post;
      bm.Free;
      ms.Free;
      showmessage('图片保存成功!');
      except
          ShowMessage('图片保存出错或不能保存!');
          exit;
      end;
    end;procedure TForm1.searchClick(Sender: TObject);
    begin
       form3.show;
    end;end.