dounatt
Messages postés45Date d'inscriptionvendredi 13 mars 2009StatutMembreDernière intervention 3 février 2014
-
7 févr. 2012 à 20:29
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
9 févr. 2012 à 08:03
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
dounatt
Messages postés45Date d'inscriptionvendredi 13 mars 2009StatutMembreDernière intervention 3 février 2014 8 févr. 2012 à 12:35
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 r31=stm.executeQuery("SELECT objet FROM appels WHERE objet= '"+tab[i]+"'"); une erreur java.lang.ArrayIndexOutOfBoundsException: 14
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 8 févr. 2012 à 14:08
Re,
1. Vu qu'il n'y a pas de quote autour de ta valeur il s'attend à un objet, et non à une constante de type VARCHAR. Logique.
2. Ben oui, tab[i] est une chaine de caractère dans cette méthode, il ne peut être interprété, d'où ma remarque dans mon post précédent.
+ la méthode est donc bonne, mais ton parcours de tableau ne l'est pas. Cette erreur montre clairement que tu essaies d'accéder à un élément en-dehors de ton tab. Là je peux pas plus t'aider sans avoir le reste du code (quand tu remplis ton tab, de quelle manière ...)
for (int i=0;i <tab1.length;i++){
for (int j=0;j <tab.length;j++){
for (int z=0;z <nb2;z++){
tt1=tab1[i];
r31=stm.executeQuery("SELECT objet FROM appels WHERE objet= "+tab1[i]);
while (r31.next()){
Z1.add(r31.getString("objet"));
}
if (!Z1.isEmpty()){matrice[i][j]=1;}
}}}
................
Dans cette partie du code, j'essaie de comparer les valeurs de la colonne 'objet' de type VARCHAR, avec les éléments du tableau de type String.
Vous n’avez pas trouvé la réponse que vous recherchez ?