Bonjour à tous,
J'ai une erreur assez bizarre.
Ma classe Java fait exécute des requêtes sur une petite base Access.
Une des requêtes renvoit 1 résultat mais "null". Si je la tape directement dans Access, elle marche correctement. J'en conclu que les drivers JDBC ne supporte pas un truc...
Je précise que les autres requêtes marchent. Mais pas celle là...
Voilà le code:
1 2 3 4 5
|
ResultSet rs = sql.exe("SELECT MAX(refClient) as ref FROM CLIENTS WHERE refClient LIKE '" + client + "*'");
rs.next();
System.out.println(rs.getString(1));
//idem avec System.out.println(rs.getString("ref")); |
J'ai un joli "null" qui s'affiche.
Si j'essaye de supprimer le MAX en tapant
"SELECT RefClient as ref FROM CLIENTS WHERE RefClient LIKE 'A*'"
J'ai un joli message "java.sql.SQLException: [Microsoft][Gestionnaire de pilotes ODBC] État de curseur non valide.
Par contre un simple "SELECT RefClient FROM CLIENTS" fonctionne sans problème.
J'en conclu que je dois foirer quelque part
edit: voilà le code de la fonction "exe" appelé lors de l'exécution de la requête.
1 2 3 4 5 6 7 8 9
| //Effectue une requête
protected ResultSet exe(String req) throws ExceptionSQLNoResult, ExceptionSQLConnexion {
try {
if(!stmt.execute(req)) throw new ExceptionSQLNoResult();
return stmt.getResultSet();
} catch (SQLException s) {
throw new ExceptionSQLConnexion();
}
} |
Partager