delphi OleVariant转换RecordSet

delphi OleVariant转换RecordSet

 uses Data.Win.ADODB;

function varToRecordSet( parms : OleVariant )  : Data.Win.ADODB._Recordset;
  begin
    Result := IDispatch( parms ) as Data.Win.ADODB._Recordset;

  end;

function RecordSetToVar( prs : _Recordset ) : OleVariant;

  begin
    Result := prs;
  end;

 

function recordSetToXMLString(prs:winapi.ADOInt._Recordset): string;
  var
  astr:string;
  stream:TStringStream;
  begin
   stream := TStringStream.Create('');

   prs.Save(TStreamAdapter.Create(stream) as IUnknown,adPersistXML);
   stream.Position:=0;
   astr:=stream.DataString;
   stream.Free;
   Result := astr;

  end;

  function xmlStringToRecordSet(pxml:string): _Recordset;
  var
  drs:Data.Win.ADODB._Recordset;
  irs:winapi.ADOInt._Recordset;
  RS: Variant;
  stream:TStringStream;
  begin
     stream := TStringStream.Create(pxml);
     stream.Position:=0;
     RS := CreateOleObject('ADODB.Recordset');
      RS.Open(TStreamAdapter.Create(stream) as IUnknown);

     Result := IUnknown(RS) as winapi.ADOInt._Recordset;
  end;

 

 

ids: IDispatch;

 ADODataSet1.Recordset :=  ids  as _Recordset;

转载于:https://www.cnblogs.com/cb168/p/4945794.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值