socket连接
客户端:clientdataset1,clientdataset2,clientdataset3
服务端:adostoredproc1
客户端的三个clientdataset调用数据均通过服务端的adostoredproc1调用不同的存诸过程
不同的存储过程的参数均不同。问:
  怎样用一个过程或函数给adostoredproc的属性赋值?

解决方案 »

  1.   

    客户端通过socket传送参数过去,当然要自定义协议来区分是哪个clientdataset来调用相应的存储过程
      

  2.   

    TClientDataSets与TADOStoredProc之间,用一个TDataSetProvider做为桥梁。TClientDataSet有一个TClientDataSet.DataRequest(Data: OleVariant): OleVariant方法,把你要调用的存储过程名及调用参数等信息,打包成一个OleVariant,并通过该方法发送给TDataSetProvider。在TDataSetProvider的OnDataRequest事件中,解包、设置TADOStoredProc和执行,然后把TDataSetProvider的Data(TADOStoredProc执行后得到的结果集)作为函数的返回值。请自己看看这些方法和事件的帮助文件,还提供了一个例子。这种实现方式跟网络协议无关。