提供思路即可

解决方案 »

  1.   

    要是不封装业务,还是就用ADO吧,RECORDSET已经封的够好了;
      

  2.   

    我现在还在传递记录集,我怕以后变为XML,为了统一调用,我需要封装一下取数据即可,在exe中可以写个类,在ASP中可怎么做啊。
    只封装取数据操作即可。
      

  3.   

    继续继续
    简单的封装
    TClientData = class(TObject)
        private
          ClientData:ADODB_TLB.Recordset;//数据
        public
          procedure SetValue(const newData:OleVariant);
          function GetFieldValue(const FieldName:WideString):OleVariant;overload;
          function GetFieldValue(const FieldIndex:integer):OleVariant;overload;
          function GetRecordCount:integer;
          procedure First;
          procedure Last;
          procedure Previous;
          procedure Next;
          function Eof:WordBool;
          function Bof:WordBool;
          constructor Create;
          destructor Destroy;override;
        end;
    procedure TClientData.SetValue(const newData:OleVariant);
    begin
      self.ClientData := IUnknown(newData) as ADODB_TLB._RecordSet;
    end;
    可是self.ClientData 有初始值,赋值会出错,存取异常。
    在构造函数中写了self.InitInstance(self);后,存取正常,可是在Free函数中又存取异常,熟悉VCL的兄弟多帮忙啦。
      

  4.   

    写了个普通COM解决,开始还以为COM是无状态的,无法记录数据,看来是我错啦,COM+才是无状态的,相比之下,二进制重用要比源码级重用简单哟:)