我是通过参数传递的方法操作SQL数据库的,现在想在客户端的stringgrid里面显示图片,后台是通过存储过程查询数据,请问怎么将后台查询的结果传到客户端?

解决方案 »

  1.   

    在stringgrid的绘制中获取数据集的blob字段数据绘制到stringgrid中
      

  2.   

    用XML封装数据如CLIENTDATASET.XMLData返回到客户端再用 CLIENTDATASET加载就搞定,
    也可用原生的ADO对象来实现
      

  3.   

    存入图片:
    function FieldZip(Dataset: TDataset; BlobFieldName: string;
      theFilename: string): Boolean;
    var
      Stream1: TMemoryStream;
    begin
      Result := True;
      Stream1 := TMemoryStream.Create;
      try
        Stream1.LoadFromFile(theFileName);
        Stream1.Seek(0, 0);
        if(Dataset.State<>dsEdit) then
        Dataset.Edit;
        TBlobField(Dataset.FindField(BlobFieldName)).LoadFromStream(Stream1);
      except
        Result := False;
      end;
      Stream1.Free;
    end;
    显示图片:
    function FieldUnzip(Dataset: TDataset; BlobFieldName: string;
      theFilename: string): Boolean;
    var
      Stream1: TMemoryStream;
    begin
      Result := True;
      if ((DataSet.RecordCount = 0) or
        (TBlobField(DataSet.FindField(BlobFieldName)).BlobSize = 0)) then
      begin
        Result := False;
        Exit;
      end;
      Stream1 := TMemoryStream.Create;
      TBlobField(DataSet.FindField(BlobFieldName)).SaveToStream(Stream1);
      Stream1.Seek(0, 0);
      try
        Stream1.SaveToFile(theFileName);
      except
        Result := False;
      end;
      Stream1.Free;
     end;
      

  4.   

    上面的三个参数是表的记录集、存储图像的Blob字段和图像文件名