Bonjour à tous,
Je suis confronté à un prob bien particulier et je sollicite votre aide.
Je fais une requete SQL à l'aide de l'instruction suivant :
Mais avant l'insertion de la nouvelle valeur dans la base, je dois faire des vérifications. J'essaie donc de récupérer cette valeur 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 ResultSet rs= null; Statement stmt = connection.createStatement(); rs =stmt.executeQuery("SELECT * FROM "+maTable + " WHERE XYZ="+uneValeur); //l'instruction parfois retourne un enregistrement unique, donc je fais if (rs.next()) { //TRAITEMENT ////Mais parfois elle ne retourne rien, dépend de la table et valeur passées. Donc, }else{ // Je veux mettre des valeur dans ce ResultSet en vue d'une insertion dans la base plustard. rs.moveToInsertRow(); wds2.updateString("CLIENT", "ABC");//attribution de la valeur "ABC" pour la colonne "CLIENT" }
Seulement voilà, ça plante et j'ai une exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String str = rs.getString("CLIENT");
Ma question est donc,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2java.lang.ArrayIndexOutOfBoundsException: -2
1. Quand j'ai un "rs" vide à la suite d'une requete et après l'instruction
est-ce que mon "rs" contient effectivement la valeur que je lui donne, dans le cas présent, "ABC" pour "CLIENT"?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wds2.updateString("CLIENT", "ABC");
2. Si elle est dans mon "rs", comment la récupérer sans les inserer dans la base avec,
Car je ne voudrais faire la mise à jour dans la base qu'une fois que les vérifications faites.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rs.updateRow(); //ou bien rs.insertRow();
En somme, je voudrais donner des valeurs dans un ResultSet vide, faire des vérifications et si certains conditions sont réunies, insérer ces valeur dans la base.
Pourriez-vous m'aider? Vous me rendriez un énorme service.
Merci d'avance
Partager