呵呵,
Uses jpeg;
给点分吧?

解决方案 »

  1.   

    简单1、有一个这样的表
      APP_IMAGEATT
      (
          ID , varchar(38) , not null
          Content , image , null
          FileName , varchar(50), null
      )
          
      例: FileName , varchar(50) , null
          2、在写库时同时将文件名写入表中的 FileName 字段3、从数据库中读取BLOB字段的内容并保存成文件
       然后再让图象控件按‘LoadFromFile’的方法显示
       这样你可以不用管是什么格式、什么后缀名的文件了。附上 第3步的函数AImage: 图象控件
    ImageID: 数据库中该记录的GUID
    AImageQuery:ADOQuery控件
    ALabel: 显示图片信息的 Labelprocedure ShowImageInfo(AImage: TImage; ImageID: string; AImageQuery: TADOQuery; ALabel: TLabel);
    var
      lStream: TMemoryStream;
    begin
      lStream := nil;
      AImage.Picture := nil;
      ALabel.Caption := '';
      if ImageID = '' then Exit;  with AImageQuery do
      try
        if Active then Close;
        Sql.Text:='select * from APP_IMAGEATT where id='''+ ImageID +'''';
        Open;
        if not Eof then
        begin
          lStream := TMemoryStream(CreateBlobStream(FieldByName('Content'), bmRead));
          lStream.SaveToFile(ExtractFileDir(Application.Exename) + '\' + FieldByName('FileName').AsString);
          AImage.Picture.LoadFromFile(ExtractFileDir(Application.Exename) + '\' + FieldByName('FileName').AsString);
          DeleteFile(ExtractFileDir(Application.Exename) + '\' + FieldByName('FileName').AsString);
        end
        else
          ALabel.Caption := '图片丢失';
      finally
        Close;
        lStream.Free;
      end;
    end;