有关TDataSetProvider的问题  
请问在这个组件的两个事件 
OnGetData(Sender: TObject; DataSet: TCustomClientDataSet) 
AfterGetRecords(Sender: TObject; var OwnerData: OleVariant) 
按照事件流,先发生OnGetData,然后发生AfterGetRecords事件, 
这辆个过程的两个参数DataSet和OwnerData的内容是不是一样的, 
我在服务器端操作DataSet是否会影响OwnerData的值。 
如果是一样的,为什么要做成不同类型的。另外,我在客户端的一个TClientDataSet控件(MyClientData)的BeforeGetRecords和AfterGetRecords事件里发现MyClientData已经关闭了,可我前面已经正确打开这个
控件了,而且通过dbgrid能够看到数据,为什么到了这两个事件里却关闭,而参数
OwnerData都是未赋值。有哪位高手知道这个原因啊。
最后,如何取从服务器传来的数据(记录形式)

解决方案 »

  1.   

    1、参数 DataSet 和 OwnerData 是不一样的。2、OwnerData 是根据应用的需要,你自己要给它一个有意义的值。它用于客户端和服务器端的交流,来传递更多的定制信息。楼主先好好看看李维的书或者 Delphi 的帮助吧
      

  2.   

    1、参数 DataSet 和 OwnerData 是不一样的。
      

  3.   

    回复人: leapmars(流铭) (
    1、参数 DataSet 和 OwnerData 是不一样的。2、OwnerData 是根据应用的需要,你自己要给它一个有意义的值。它用于客户端和服务器端的交流,来传递更多的定制信息。楼主先好好看看李维的书或者 Delphi 的帮助吧他说的对,帮你顶一下,查看帮助就能完全解决,不过要看不太懂E文,找找李维的书看看吧。
      

  4.   

    我的意思是,OwnerData在客户端赋值后(比如在BeforeGetRecords赋一个sql语句),在服务器端也在BeforeGetRecords事件中取出OwnerData值,然后进行操作。
    但我在客户端如何得到结果数据集,因为不论我在BeforeGetRecords还是在AfterGetRecords
    事件都发现MyClientDataSet都已经关闭了,这样如何取结果数据集。但我通过数据源再
    联到dbgrid,dbgrid里显示了正确的结果。这是为什么了
      

  5.   

    但我在客户端如何得到结果数据集,因为不论我在BeforeGetRecords还是在AfterGetRecords 事件都发现MyClientDataSet都已经关闭了
    ----------------------------------
    这两个事件是在你取数据的时候发生的,然后产生了两个事件,也就是有了蛋,然后数据就得到了。你用什么组件取数据的,数据就到了你的那个组件中了