A autojet Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-04 #1 在b/s程序服务中,我不想在中间层放datasetprovider控件,而直接通过Variant型变量将 Ado产生的记录集传回到客户端,请问应怎样设置?
H hw_sea2 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-04 #2 我正用ADO 开发三层结构应用系统,也碰到问题?用ADO 怎么不在应用服务器中写代码就能更新 单个表?你这个问题你可以试一试用IAPPSERVER界面的自定义函数
徐 徐凤华 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-04 #3 可以用Variant数组来完成,但是如果是一个很大的表,将会花很长时间,效率上可能 。。。。
A autojet Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #4 [blue]我正是使用的IAppserver接口,自定义了接口函数,问题是怎样将Ado所产生的记录集 转换成为Variant型变量,以传到客户端[/blue]
W weic Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #5 其实DatasetProvider进行的就是数据封包的工作。将Ado的_RecordSet转化 成为ClientDataSet的Data,而Data就是Variant类型的。 如果你要使用IAppserver接口,为什么不用DCOM来直接进行连接呢? 直接用代码连接应该也是可以的,我查了一下Delphi的源码, 发现DatasetProvider的数据封包工作是通过一个名为TDataPacketWriter的 对象来实现的。这个对象的声明就在 Provider 这个单元中, 其中一个函数可能就是你想要的: procedure GetDataPacket(DataSet: TDataSet; var RecsOut: Integer; out Data: OleVariant); 看看它的参数吧! 呵呵
其实DatasetProvider进行的就是数据封包的工作。将Ado的_RecordSet转化 成为ClientDataSet的Data,而Data就是Variant类型的。 如果你要使用IAppserver接口,为什么不用DCOM来直接进行连接呢? 直接用代码连接应该也是可以的,我查了一下Delphi的源码, 发现DatasetProvider的数据封包工作是通过一个名为TDataPacketWriter的 对象来实现的。这个对象的声明就在 Provider 这个单元中, 其中一个函数可能就是你想要的: procedure GetDataPacket(DataSet: TDataSet; var RecsOut: Integer; out Data: OleVariant); 看看它的参数吧! 呵呵