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 :
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"
}
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
 
   String str = rs.getString("CLIENT");
Seulement voilà, ça plante et j'ai une exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
java.lang.ArrayIndexOutOfBoundsException: -2
Ma question est donc,
1. Quand j'ai un "rs" vide à la suite d'une requete et après l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 wds2.updateString("CLIENT", "ABC");
est-ce que mon "rs" contient effectivement la valeur que je lui donne, dans le cas présent, "ABC" pour "CLIENT"?
2. Si elle est dans mon "rs", comment la récupérer sans les inserer dans la base avec,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
rs.updateRow();
//ou bien
rs.insertRow();
Car je ne voudrais faire la mise à jour dans la base qu'une fois que les vérifications faites.
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