我想问下,在UI中是通过TClientDataSet来取得中间层TDataSetProvider的数据,那就是说每个TClientDataSet都要对应每个TDataSetProvider。
那表现层不是要知道每个TDataSetProvider要来干什么,我觉这个设计不太科学,有更好的解决办法吗?

解决方案 »

  1.   

    每个TClientDataSet都要对应“一个”TDataSetProvider,可以对应同一个,也可以不同。
    要使表现层和中间层独立开来,最好由客户端来决定TClientDataSet要干什么,再发SQL调用中间层的TDataSetProvider。
      

  2.   

    TClientdataset不是有commandtext吗,为什么不在客户端来改变你想做的一切呢?
      

  3.   

    如果由客户端来决定 SQL,那么如何限制他访问不该访问的表呢?
      

  4.   

    客户端TClientDataSet 可以接受任何时候Server端的数据包Data.
    不必一一对应.
    特别是基于无状态的,很定型的....
      

  5.   

    我觉得根本不应该用TClientdataset里的commandtext,因为如果这样用的话客户端要知道数据存放在那个表并且要知道用什么SQL语句, 这样做和二层没有什么分别,表现层与中间层的逻辑不能分开。
      

  6.   

    又是用clientdataset直接传sql,那干麻不直接c/s用ado呢。
    我都用datarequest(信号),或是其它方法。
      

  7.   

    可以一个CLIENTDATASET对应许多的DATASETPROVIDER 不过你的CLIENTDATASET段只能同一时间连一个表。