数据库是sybase的,在统计时使用了原生SQL语句,想同时计算出统计结果的记录数,但由于Sybase12.x不支持嵌套查询(如:select count(*) from(select xxx from tt)),所以只好在执行统计SQL语句之后立马执行select @@rowcount来获取记录数,但明明在查询分析器里以正确返回实际的记录数,但在Hibernate返回的值却永远是1,我真是没办法了,交不了差了请知情的朋友帮下忙啊!!!
============================================
执行完统计SQL语句后,用同一个session立马执行以下语句,但结果总是1。
String sqlStr="select @@rowcount as rc";
SQLQuery query=session.createSQLQuery(sqlStr);
query.addScalar("rc", Hibernate.INTEGER);
System.out.println("rc==>"+query.list().get(0));

解决方案 »

  1.   

    执行完统计SQL语句后,用同一个session立马执行以下语句,但结果总是1。 
    String sqlStr="select @@rowcount as rc"; 
    SQLQuery query=session.createSQLQuery(sqlStr); 
    query.addScalar("rc", Hibernate.INTEGER); 
    System.out.println("rc==>"+query.list().get(0));
    @@rowcount 是当前游标影响的数据量,只能在存储过程里面使用,不能在一般的sql里面用
      

  2.   

    TO:youjianbo_han_87
    不是的,我是想获取统计结果的记录数,比如我做了一个统计查询,同时还要分页,所以我需要获取这个统计查询结果的共有多少条。只是12.5.2版本的不支持嵌套查询,所以无法获取,这下不知道怎么办好。用存储过程的话,必须要把记录写入临时表再插入ID再查询也麻烦