我在main函数调用如下方法时报告错误:=================================================Java code========================================
public List<Object> checkAll(int line)
{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
List<Object> lst=new ArrayList<Object>();
Dlc2 dlc2=null;
conn=getConnection();
try
{
pstmt=conn.prepareStatement("[color=#003300]select top 10  * from TBL_MESSAGE where id not in(select top ? id from TBL_MESSAGE order by id) order by id
");
pstmt.setInt(1, line);
rs=pstmt.executeQuery();
while(rs.next())
{
int id=rs.getInt(1);
String message=rs.getString(2);
String author=rs.getString(3);
Date postTime=rs.getDate(4);
dlc2=new Dlc2(id,message,author,postTime);
lst.add(dlc2);
}
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
closeAll(conn,pstmt,rs);
}
return lst;
}[/color]
=================================================控制台错误========================================
com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(Unknown Source)
at com.dlc2.dao.impl.Dlc2DaoImpl.checkAll
(Dlc2DaoImpl.java:86)
at com.dlc2.biz.Dlc2Biz.checkAll(Dlc2Biz.java:21)
at com.dlc2.test.Dlc2Test.main(Dlc2Test.java:17)
===================================================END=============================================
错误中的Dlc2DaoImpl是Dlc2Dao的接口实现类,
错误中的Dlc2Biz是表示层的类
错误中的Dlc2Test是测试包中的类,方法就是在这个类中调用的。

解决方案 »

  1.   

    本来想让SQL语句突出显示的,没想到搞乱了我重新发一下:分页查询语句我是这样写的:
    select top 10 * from TBL_MESSAGE where id not in(select top ? id from TBL_MESSAGE order by id)order by id
    问号部分是我传入的数字,比如传入0就是查前十条,传入10就查第十条以后的,反正是每次查十条,在MSSQL中可以用,但写到Java中不知道问什么就报这个错!想请各位老人帮我看看3Q!
      

  2.   

    打开mssql的tracking,然后看能不能收到sql语句
      

  3.   

    答:runner,代码中找不出哪里错,但在MSSQL中SQL语句执行正常。
      

  4.   

    爱死你了:colachens,用拼接方式果然解决了,你真是我的贵人啊!谢谢你!