使用ClientDataSet
ClientDataSet.Data:=COM组件返回的OleVariant类型的记录集

解决方案 »

  1.   

    能讲详细一点吗?
    我直接相等运行时提示错误‘Invalid data packed’
      

  2.   

    在com端使用datasetprovider引出OleVariant类型的记录集
    在客户端可以直接引用vData;procedure TCoManPro.GetFunction(const sProjectID: WideString; var vData,
      Flag: OleVariant);
    var
      StrTemp: WideString;
    begin
      StrTemp:=sProjectID;
      Flag:=-1;
      if StrTemp='' then StrTemp:='select * from FUNCTION'
        else StrTemp:='select * from FUNCTION where ProjectID='''+sProjectID+'''';
      try
        Flag:=AdoQueryOpen(AdoQueryFunction,StrTemp,false);
        vData:=DataSetProviderFunction.Data;
      finally
        AdoQueryFunction.Close;
      end;
    end;客户端:
        MPObj.GetFunction(sProjectID,vData,Flag);
        if Flag=0 then
          ClientDataSetFunction.Data:=vData;
      

  3.   

    使用ADODB_TLB类库myDst.RecordSet:=IUnknown(COM组件返回的OleVariant类型的记录集) as _recordset