SQL子查询(如select * from t1 where ID in (select tID from t2)),
在两层结构的Query中执行得好好的,为什么到三层结构中,通过ClientDataset.CommondText传到应用服务器中执行就出错呢?是不是还有一些设置要做?

解决方案 »

  1.   

    首先poallowcommandtext:=true; 我先试试,看看子查询有什么不同
      

  2.   

    没有错误阿?
    楼主不会真的没有设置datasetprovider的options
    poallowcommandtext:=true
      

  3.   

    看来九成九没有设置好:datasetprovider.optionso.allowcommandtext:=true
      

  4.   

    如果不设allowcommandtext=true,根本就无法执行普通查询
    不知大伙是不是真的试过了子查询,形如:select * from t1 where ID in (select tID from t2),再试试好么,谢谢了
      

  5.   

    不论套了多少层的子查询,都是在同一个query里查询。都是属于同一个事务。
    你把出错信息写出来吧。应该是你的sql语句有问题吧。
    你的cs,midas用的都是同一个数据库?这一点要注意的。
      

  6.   

    运行服务器分布式Dcom的配置(Dcomcnfg),再检查一下权限,以及服务器上面的各个属性设置,就ok了。
      

  7.   

    服务器端datasetprovider的options属性的poAllowCommandText改为true
    应该可以了