我想做一个三层架构的程序,因为是初次做,有一些关系还理不清楚,希望有高手给我指点一下
服务层是分别用了ADOConnection,ADOQuery,DataSetProvider 控件
客户端用的是一个SocketConnection,一个ClientDataSet,一个DataSource,一个DBGrid 首先我要实现,从客户传 递一些条件,再得将得到的查询结果反映到前台的DBGRID上,
当我用
ClientDataSet1.Close; 
ClientDataSet1.CommandText:='select * from table where ````'; 
ClientDataSet1.Open; 每次都提示:CommandText changes are not allowed还有如果要执行一些,添加,修改,删除操作改怎么做啊,有人给我一些例子吗,谢谢

解决方案 »

  1.   

    DataSetProvider有个允许执行CommandText命令的属性,设置为可以就好了
      

  2.   

    不就是一个DBGrid调用ADOQuery显示吗?不算什么三层架构吧
      

  3.   

    ClientDataSet1.CommandText:='select   *   from   table   where   ````';你不是都会写查询了吗?怎么不会写删除,修改?
      

  4.   

    是用SOCK做的一个三层吧,应该就是 DataSetProvider的设置的问题
      

  5.   

    DataSetProvider的options的poallowcommandtext设置为True就可以了
      

  6.   

    看来都被 李维老师给害了。MIDAS。。Provider。。
    特别是 鱼与熊掌兼得这篇
      

  7.   

    呵呵.是的.其实有比李维老师更好的方法.李维讲的都是Borland的技术.
    我做三层的时候只是借用了哪个midas的传输功能.在客户端交换的一般不正接发送数据,只发送对象过去.
    在服务器端处理对象就可以了.
    要用OOP的思想去设计的话,就可以完全丢掉李维讲的哪些东西.