SQL

Résolu
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014 - 7 févr. 2012 à 20:38
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 8 févr. 2012 à 22:04
Bonjour, j'ai le code java suivant:

..................
String[]tab=new String[10];
for (int i=0;i <10;i++){
r31=stm.executeQuery("SELECT objet FROM appels WHERE objet= "+tab[i]);
while (r31.next()){
Z1.add(r31.getString("objet"));
} }
....................


il y a un problème dans la requête, j'ai essayé avec r31=stm.executeQuery("SELECT objet FROM appels WHERE objet like 'tab[i]'"); mais ça maerche pas.

pouvez vous m'aider svp, ça fait 2 jours bloquée ici

7 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 févr. 2012 à 18:54
Alors l'erreur ne vient pas de ta requête SQL (SQL exception) c'est le dépassement des bornes de ton tableau.

Tu demandes de prendre l'élément 14 du tableau alors que le tableau contient 14 éléments ou moins (numérotés à partir de 0)
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 févr. 2012 à 07:56
Bonjour,

Que veux tu dire par "ca marche pas" ? Tu as une exception ? Ou bien les résultats retournés ne sont pas les bons ? Si tu es dans ce cas, explique moi pourquoi ils ne sont pas bons ?

Essaye peut être avec cette requete : "SELECT objet FROM appels WHERE objet='"+tab[i]+"';"

Mais dans tous les cas, le résultat de la requete sera tab[i] ou rien du tout, cette requete ne sert qu'a vérifier que tab[i] est dans la base e données
0
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014
8 févr. 2012 à 11:43
Bonjour

1. Avec r31=stm.executeQuery("SELECT objet FROM appels WHERE objet= "+tab[i]);
sachant que objet est VARCHAR et tab[i] est String,
l'erreur est Unknown column 'adh' in 'where clause'
Cette requête marche bien si VARCHAR=integer (... WHERE numero=i)

2. Avec r31=stm.executeQuery("SELECT objet FROM appels WHERE objet like 'tab[i]'");
tab[i] n'est pas considéré comme variable, car la comparaison ne se fait pas
correctement.

J'ai essayé avec votre proposition, ça n'a pas été marché. Je pense que le problème est comment comparer deux chaines de caractères, et comment exprimer une variable.

merci
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 févr. 2012 à 13:41
Pour que ta variable soit résolue, il ne faut pas qu'elle soit entre "" :

"SELECT objet FROM appels WHERE objet like '"+tab[i]+"'"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014
8 févr. 2012 à 17:18
Merci,
mais avec "SELECT objet FROM appels WHERE objet like '"+tab[i]+"'" j'avais l'erreur java.lang.ArrayIndexOutOfBoundsException: 14
0
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014
8 févr. 2012 à 20:26
Merciiiiiiiiiiiiiiiiiiii, merci beaucoup Julien39

r31=stm.executeQuery("SELECT objet FROM appels WHERE objet like '"+tab[i]+"'");
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 févr. 2012 à 22:04
DE rien

a+
0
Rejoignez-nous