客户端的ClientDataSet也是自动创建的,
创建后,给服务端发送SQL语句和数据集名称根据名称判断服务端是否已经创建,
未创建,则服务端根据SQL语句创建ADOQuery和DataSetProvider(我用ADO),
然后返回一个Provider的Name,并赋值给ClientDataSet的ProviderName属性。
自此,就可以对ClientDataSet进行操作了。此设计是本人的想法,已经进行微量测试,想应该于一个项目,不知道各位大虾有何看法,
希望有此方面经验的人帮忙解决下面的问题:
1。是否可行。
2。效率如何。
3。有什么弊端。

解决方案 »

  1.   

    呵呵,你的这样的三层架构的系统好像有些牵强的
    不过最好的方法:
      业务处理都放到服务端,客户端只负责数据的接收也业务请求
      是否用ClientDataSet你自己决定吧,三层的模式也不一定就按照Borland公司提供的Demo去作,可以根据需要去表现数据的
      

  2.   

    服务端根据SQL语句和数据集名称根据名称判断服务端是否已经创建,
    未创建,则服务端根据SQL语句创建ADOQuery和DataSetProvider(我用ADO),
    然后返回一个Provider的Name,并赋值给ClientDataSet的ProviderName属性。如果SQL不是由直接客户端发送过来的的情况下:
    1。是可行,且灵活性较高。
    2。效率与直接放SQL没有太大的差别。
    3。没有什么弊端。但是如果SQL是由工程的客户端发送过来的的情况下:
    就像楼上几位说的,那你搞个服务端干什么??
    不过话又说回来,我也还是见过很多单位、个人是这样开发三层应用程序的!
      

  3.   

    楼主,不好意思,我才来。我以前做过一个三层的,跟楼主的想法差不多,我的做法如下:
    1。工程分为三个可执行程序:
       A 服务端 处理数据请求,负责创建相关的数据运行环境及数据处逻辑、业务逻辑等。(从数据库读SQL等)
       B 设计端 负责设计相关的数据环境、算法设计。(设计SQL等,存到数据库)
       C 运行端 相当于平常意义上说的客户端。