各位老师好。
    我前台开发语言是delphi6.0,后台数据库为sql server2000。我想把mao表中一个tuxiang字段(image类型)显示在image控件上。但显示不出来,代码如下:procedure TForm1.Button2Click(Sender: TObject);
var
ms:tmemorystream;
begin
  ms:=tmemorystream.Create ;
  try
    adoquery1.Close;
    adoquery1.SQL.Clear ;
    adoquery1.SQL.Text:='select * from mao where hao=''1111''';
    adoquery1.Prepared :=true;
    adoquery1.Open ;
    adoquery1.Last;
    (adoquery1.FieldByName('tuxiang') as tblobfield).SaveToStream(tms);    image1.Picture.Bitmap.LoadFromStream(tms);
  finally
    ms.Free ;
  end;
end;

解决方案 »

  1.   

    你的图像是什么类别?如果JPG存入数据库的话,这样是显示不出来的
      

  2.   

    BlobStream: TADOBlobStream;
    先保存到blobstream里,再试试。
      

  3.   

    procedure TfrmArticleEdit.aiImportImageExecute(Sender: TObject);
    var
      lPictureName:string;     //路径+文件名+扩展名
      lEXTName:string;       //扩展名
      lJpegImage:TJpegImage; //图像对象
    begin
      //inherited;
      //
      //dbiArticleImage.Picture.LoadFromFile('');
      //OpenPictureDlg.InitialDir:=DBConnection.AppPath;
      if OpenPictureDlg.Execute then
      begin
        Articles.ImportImage;
        //dbiArticleImage.Picture.LoadFromFile(OpenPictureDlg.FileName);    lPictureName:=OpenPictureDlg.FileName;
        lEXTName:=extractfileext(lPictureName);    //BitMap 类型
        if UpperCase(lEXTName)='.BMP' then
        begin
          dbiArticleImage.Picture.LoadFromFile(OpenPictureDlg.FileName);
        end;    //JEPG 类型
        if (UpperCase(lEXTName)='.JPG') or (UpperCase(lEXTName)='.JEPG') then
        begin
          lJpegImage:=TJpegImage.Create;
          try
            lJpegImage.LoadFromFile(lPictureName);
            dbiArticleImage.Picture.Graphic.Assign(lJpegImage);
          finally
            lJpegImage.Free;
          end;
        end;
        dbeImageName.Enabled:=True;
        dbeImageExplain.Enabled:=True;
      end;
    end;procedure TfrmArticleEdit.aiExportImageExecute(Sender: TObject);
    var
      iFilterIndex:integer;   //选中的文件类型识别符
      sFileName:string;       //不带扩展名
      lJpegImage:TJpegImage;
    begin
      if SavePictureDlg.Execute then
      begin
        iFilterIndex:=SavePictureDlg.FilterIndex;
        sFileName:=SavePictureDlg.FileName;
        case iFilterIndex of
          1://JPG 类型
            begin
              lJpegImage:=TJpegImage.Create;
              try
                lJpegImage.Assign(dbiArticleImage.Picture.Graphic);
                lJpegImage.SaveToFile(sFileName+'.jpg');
              finally
                lJpegImage.Free;
              end;
            end;
          2://JPEG 类型
            begin
              lJpegImage:=TJpegImage.Create;
              try
                lJpegImage.Assign(dbiArticleImage.Picture.Graphic);
                lJpegImage.SaveToFile(sFileName+'.jpeg');
              finally
                lJpegImage.Free;
              end;
            end;
          3://BitMap 类型
            begin
              dbiArticleImage.Picture.SaveToFile(sFileName+'.bmp');
            end;
        end;
      end;
    end;