[JDBC] Probleme ResultSet
Bonjour à tous,
voilà je debute avec JDBC et me voilà confronter à un ptit problème.
1. J'ai crée une table "MEMBRES" dans mon code JAVA qui est de la forme :
Code:
1 2 3 4 5 6 7 8
|
String creerTableMembres = "CREATE TABLE MEMBRES(" +
" No_Carte number(6) primary key, " +
" Nom char(20), " +
" Adr char(50) not null, " +
" Code_postal number(5), " +
" Ville char(30) not null, " +
" constraint codeposte check(Code_postal >= 100 and Code_postal <= 96999))"; |
et sur laquelle j'insère quelques lignes , ce qui jusque là ne pose pas de problème.
Mon problème vient d'un deleteRow() que j'ai voulu tester en fait, en faisant :
Code:
1 2 3 4
|
// Création d'un objet Statement apres l'activation d'une connexion active :
Statement stmt = conx.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); |
.. J'insère mes lignes dans la table membres, sa marche, puis je veux en afficher le contenu et faire un rs.deleteRow() de la façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
affiche("> REQUETE DE SELECTION ...");
ResultSet rs;
rs=stmt.executeQuery("SELECT * FROM MEMBRES");
affiche("> test debug 1...");
while(rs.next()){
int num = rs.getInt(1);
String nom = rs.getString(2);
String adr = rs.getString(3);
int cod = rs.getInt(4);
String ville = rs.getString(5);
affiche("> test debug 2...");
System.out.println(nom + " a pour numero de carte " +num+ " et habite " +adr+ " , " +ville+ " , " + cod);
affiche("> test debug 3...");
rs.deleteRow();
affiche("> test debug 4...");
} |
Le code marche correctement sans le rs.deleteRow(), toutes les lignes de la table s'affiche dans la console.
Voilà ce que j'obtiens depuis que j'ai mis rs.deleteRow() :
Citation:
> REQUETE DE SELECTION ...
> test debug 1...
> test debug 2...
Daniel a pour numero de carte 100001 et habite 9 allée de la République , Paris , 75016
> test debug 3...
SQLException: Opération non valide sur un ensemble de résultats de type read-only : deleteRow
java.sql.SQLException: Opération non valide sur un ensemble de résultats de type read-only : deleteRow
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.BaseResultSet.deleteRow(BaseResultSet.java:516)
at myClass.main(myClass.java:171)
Il semble donc que ce soit dû aux options du ResultSet fixées par l'objet Statement???
Pourtant je pense avoir suivi la fac : http://java.developpez.com/faq/jdbc/?page=resultset (>> "Comment supprimer une ligne dans un ResultSet ?")
2. De plus, je voulais savoir si, en supprimant une ligne dans le ResultatSet, on supprime en même temps la ligne correspondante dans la table "MEMBRES" ?
Pouvez vous m'éclairer siouplé :idea:
Merci :wink: