请问各位怎样用Image控件将SQL Server数据库中image类型的图片读出来?能具体的给我写一下吗?谢谢!

解决方案 »

  1.   

    uses jpeg;procedure TForm1.Button1Click(Sender: TObject);
    var
      Jpg: TJpegImage;
    begin
      try
        Jpg:=TJpegImage.Create;
        jpg.Assign(table1.Fieldbyname('Graphic'));
        image1.picture.Bitmap.Assign(jpg);
      finally
        Jpg.Free;
      end;
    end;
      

  2.   

    可是图片怎样显示在image控件里面呀?
      

  3.   

    procedure g_fun_OpenPictureFromDB(fIndex:Integer;MapFileName:string;imgShow:TImage);
    var
      qry: TADOQuery;
      mySql: string;
      TempBlob: TBlobField;
    begin
      try
        qry := TADOQuery.Create(nil);
        qry.Connection := g_sysconnect;
        mySql := 'select fPicture from map where findex = ' + IntToStr(fIndex);
        if g_fun_ExecuteSQL(qry,mySql,2) then
        begin
          if qry.RecordCount > 0 then
          begin
            TempBlob := TBlobField(qry.FieldByName('fpicture'));
            TempBlob.SaveToFile(MapFileName);
            imgShow.Picture.LoadFromFile(MapFileName);
          end
          else
          begin
            MessageBox(Application.Handle, '没有获取到图片记录!', '提示',
              MB_OK + MB_ICONINFORMATION);
          end;
        end;
      finally
        FreeAndNil(qry);
      end;
    end;
    说明一下:为什么用LoadFromFile,是因为TImage.Picture不支持从流中导入,显示出来后记住将图片文件删除。