J'interroge une base de données à l'aide de MS SQL et, pour une raison quelconque, j'obtiens l'erreur suivante : com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'
même si ce 'P0' n'est nulle part dans ma syntaxe...
J'ai lu que quelqu'un avait eu le même problème mais qu'il utilisait une procédure stockée, ce que je n'utilise pas, donc je ne vois pas comment sa solution pourrait me convenir. (Sa solution consiste à ajouter des accolades {} autour de l'appel de la procédure.
Quoi qu'il en soit, j'ai collé ci-dessous le code correspondant. J'espère vraiment que quelqu'un pourra m'aider sur ce point, je suis assez frustré.
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);
}
Merci d'avance !