我用dbgrid显示adoquery所查询到的内容,由于表中有JPEG格式的图片字段,其他字段用DBEDIT显示,而图片通过程序控制,问题是我想实现点击某个记录,就显示该记录的图片字段,但是老提示“未发现‘序号’字段”,到底怎么回事呢?我的代码如下:
    pro_info.ADOConnection1.Open;
    with pro_info.ADOQuery1 do
      begin
      close;
      sql.clear;
      if trim(edit15.Text)<>'' then sql.add('select * from product where 产品编号 like '''+'%'+edit15.text+'%''');
      if trim(edit16.Text)<>'' then sql.add('select * from product where 产品名 like '''+'%'+edit16.text+'%''');
      open;
      end;
    datasource1.DataSet:=pro_info.ADOQuery1;if (combobox1.Text='产品信息') and (dbgrid1.DataSource.DataSet.RecordCount>0) then
begin
no:=dbgrid1.DataSource.DataSet.fieldbyname('序号').value;//dataset连接adoquery1
all_query.getpicture(pro_info.ADOQuery1);//getpicture是我自定义的过程,已经测试过,没
                                           问题。
end;

解决方案 »

  1.   

    DBGRID中对应的字段中显示图片
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
      Bmp: TBitmap;
    begin
      if Column.Field = Table1IMAGE  then
      begin
        try
          Bmp := TBitmap.Create;
          Bmp.Assign(Table1IMAGE);
          DBGrid1.Canvas.StretchDraw(Rect,Bmp);
        finally
          Bmp.Free;
        end;
      end ;
    end;
    Delphi入门到精通书上有例子
      

  2.   

    可我的图片格式是JPG的,如果是BMP的直接用DBIMAGE就可以解决了
      

  3.   

    把我的代码给你参考(适合Jpep,jpg,bmp类型图片):procedure TF_xiangxiCX.FormActivate(Sender: TObject);
    var
      ms:TStringStream;
      Jpg:TJpegImage;
    begin
      with Jiben_Query  do
        begin
          close;
          sql.Clear;
          sql.Add('select * from jiben where Numb='''+F_jibenCX.XueHao+'''');
          open;
            if FieldByName('图片').AsString<>'' then//判断图片字段是否有图片
            begin
              ms:=TstringStream.Create('');
              Jpg:=TJpegImage.Create;
              try
                TBlobField(FieldByName('图片')).SaveToStream(ms);
                Ms.Position :=0;
                Jpg.LoadFromStream(Ms);
                Image1.Picture.Assign(Jpg);
                Jpg.Free;
                Ms.Free;
              except
                Jpg.Free;
                Ms.Free;
              end;
            end;