Я запрашиваю БД, используя MS SQL, и по какой-то причине я получаю следующую ошибку: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'
, хотя этот 'P0' нигде в моем синтаксисе ...
Я читал, что у кого-то была такая же проблема, но он использовал сохраненный процесс, который я не использую, поэтому я не вижу, как его решение будет работать для меня. (Его решение заключается в добавлении фигурных скобок {} вокруг вызова процедуры.
В любом случае, ниже я вставил соответствующий код. Очень надеюсь, что кто-то может помочь мне с этим, расстроившись.
PreparedStatement stmt = null;
Connection conn = null;
String sqlQuery = "SELECT TOP ? \n"+
"z.bankAccountNo, \n"+
"z.statementNo, \n"+
"z.transactionDate, \n"+
"z.description, \n"+
"z.amount, \n"+
"z.guid \n"+
"FROM \n"+
"( \n"+
"select \n"+
"ROW_NUMBER() OVER (ORDER BY x.transactionDate, x.statementNo) AS RowNumber, \n"+
"x.transactionDate, \n"+
"x.statementNo, \n"+
"x.description, \n"+
"x.amount, \n"+
"x.bankAccountNo, \n"+
"x.guid \n"+
"FROM \n"+
"( \n"+
"SELECT \n"+
"a.bankAccountNo, \n"+
"a.statementNo, \n"+
"a.transactionDate, \n"+
"a.description, \n"+
"a.amount, \n"+
"a.guid \n"+
"FROM BankTransactions as a \n"+
"LEFT OUTER JOIN BankTransactionCategories as b \n"+
"ON a.category = b.categoryCode \n"+
"WHERE b.categoryCode is null \n"+
") as x \n"+
") as z \n"+
"WHERE (z.RowNumber >= ?)";
stmt = conn.prepareStatement(sqlQuery);
stmt.setInt(1, RowCountToDisplay);
stmt.setInt(2, StartIndex);
ResultSet rs = null;
try{
rs = stmt.executeQuery();
} catch (Exception Error){
System.out.println("Error: "+Error);
}
Заранее спасибо!