Bonjour !
J'ai un léger problème avec une requête SQL, et j'y comprends rien !
Voila, j'ai une méthode qui me renvoit une ArrayList d'identifiants d'une table.
La requête SQL peut conporter des conditions (clause WHERE), donc je construits la clause selon les conditions.... Mais voila. Je ne comprends pas pourquoi, mais il semblerait qu'un caractère se mette à la fin de ma requête, sans que je sache d'où il vienne. Et ce fichu caractère fait tout planté car a cause de lui, la requête n'est pas validée par MySQL.
voici le code de construction de la requete :
Ensuite je concatène le where au reste de la requete avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 string sql = "SELECT id FROM table"; string thewhere = ""; if (condition1 != "") { if (thewhere != "") { thewhere += " AND champ1 = '" + condition1 + "'"; } else { thewhere = " WHERE champ1 = '" + condition1 + "'"; } } if (condition2 > 0) { chonFiche theChon = new chonFiche(ExceptOf); if (thewhere != "") { thewhere += " AND id <> '" + condition2 + "'"; thewhere += " AND (date IS NULL OR"; thewhere += " date < DATE_FORMAT('" + uneDate + "', '%Y-%m-%d')"; } else { thewhere += " WHERE id <> '" + condition2 + "'"; thewhere += " AND (date IS NULL OR"; thewhere += " date < DATE_FORMAT('" + uneDate + "', '%Y-%m-%d')"; } }
sql += thewhere;
Et quand je lance le déboggueur (je travaille sous SharpDevelop), dans les variables locales, je vois la requete qui semble correcte MAIS avec un petit carré a la fin de la requete, qui ne devrait pas être là !
l'erreur renvoyé par l'exception est "syntaxe incorrecte pret de '' ligne 1"...
si la requete n'a pas de condition, tout semble bien se passer, et je n'ai ni erreur ni caractère étrangé.... Mais si il y en a une... tout foire ;(
Auriez-vous une idée ?
merci d'avance !
[EDIT]
en fait, pour plus de précision, avec la première condition tout se passe bien, mais c'est avec la seconde que tout bascule![]()
Partager