这是我存储的代码,我要取出来显示,如何做呢 大侠帮忙啊   能不能提供完整点的代码,问别人都说用流,然后给一点代码,我知道用流了,但是自己实在做不出来。郁闷好多天了FileName:='D:\200711126293700.jpg'; 
      ADOQuery := TADOQuery.Create(Nil); 
      ADOQuery.ConnectionString :=CstrMySqlConn; 
      try 
          with  ADOQuery  do 
              begin    
                  close;    
                  sql.clear;    
                  sql.add('insert  into  img  (imga)  values(:imag)');    
              end;    
          try    
              if  FileName <>''  then 
                  ADOQuery.Parameters.ParamByName('Imag').LoadfromFile(FileName,ftGraphic) 
              else 
                  ADOQuery.Parameters.ParamByName('Imag').Value:=null; 
              ADOQuery.ExecSQL; 
              //ADOQuery.post 
          except    
              ShowMessage('图片保存出错!'); 
              exit;    
          end;    
      except    
      end;  

解决方案 »

  1.   

    var
      m_jpeg : TJpegImage;
      m_blob : TStream;
    begin
      //读取JPG图像
      m_blob := adoDataSet.CreateBlobStream(adoDataSet.FieldByName('Picture'),bmRead);
      m_jpeg:=TJpegImage.Create;
      try
        if m_blob.Size<>0 then
        begin
          try
              m_jpeg.LoadFromStream(m_blob);
              imInput.Picture.Assign(m_jpeg);
              imInput.Refresh;
          except
          end;
        end
        else
          imInput.Picture.Assign(nil);
      finally
        m_jpeg.Free;
        m_blob.Free;
      end;
    end;
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
    begin
      //如果图像不为空,把图像以JPG格式导入到字段中
      if Assigned(imInput.Picture.Graphic) then
        begin
          jpg := TJpegImage.Create;
          ms := TMemoryStream.Create;
          try
            jpg.Assign(imInput.Picture.Graphic);
            jpg.SaveToStream(ms);
            if  SizeOf(ms) > 0 then
              (adoDataSet.FieldByName('PICTURE') as TBlobField).LoadFromStream(ms);
          finally
            ms.Free;
            jpg.Free;
          end;
        end;
        //注:imInput为TImage类型
    end;
      

  2.   

     function GetHexStringFromFile(const AFileName: string): string; 
      const 
        SHex: PChar = '0123456789ABCDEF'; 
      var 
        P: PChar; 
        I, Size: Integer; 
        hFile: Thandle; 
        V: Byte; 
      begin 
        Result := 'NULL'; 
        hFile := FileOpen(AFileName, fmShareDenyNone); 
        if hFile = INVALID_HANDLE_VALUE then Exit; 
        Size := FileSeek(hFile, 0, FILE_END); 
        FileSeek(hFile, 0, FILE_BEGIN); 
        SetLength(Result, Size * 2 + 2); 
        FileRead(hFile, Result[1], Size); 
        CloseHandle(hFile);     P := PChar(Result) + Length(Result) - 2; 
        for I := 0 to Size - 1 do 
        begin 
          V := Ord(Result[Size - I]); 
          P[0] := SHex[V shr 4]; 
          P[1] := SHex[V and $F]; 
          Dec(P, 2); 
        end; 
        P[0] := '0'; 
        P[1] := 'x'; 
      end;    FileName:='D:\200711126293700.jpg'; 
       ADOQuery := TADOQuery.Create(Nil); 
       ADOQuery.ConnectionString :=CstrMySqlConn; 
       with  ADOQuery  do 
       begin    
         SQL.Text := Format('insert  into  img  (imga)  values(%s)', [GetHexStringFromFile[FileName)]);
         ExecSQL; 
       end;