IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

absolute et deleteRow


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut absolute et deleteRow
    Bonjours.

    Dans ma base de donnée, je veux supprimer la 5e rangée à partir de la fin

    J'ai pourtant bien fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    try {
     
    			Statement stmt = con
    					.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    							ResultSet.CONCUR_UPDATABLE);
     
    			ResultSet rs = stmt
    					.executeQuery("SELECT * FROM Commandes");
    			rs.absolute(-5);
    			rs.deleteRow();
     
     
    			stmt.close();
    			con.close();
     
    		} catch (SQLException ex) {
    			System.err.println("SQLException: " + ex.getMessage());
    		}
    	}
    Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ce serait plus propre et plus stable de faire "delete from commands where ..." car le 5ème à partir de la fin, c'est, il me semble, vouloir effacer au bon vouloir de l'ordre utilisé par la base de donnée...

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    j'avais pensé à cette façon mais en apprenant la matière et ayant l'exercice qui vient avec, je croyais devoir utiliser deleteRow()

    mais est-ce possible quand même ?

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Dans tous les cas, tu pointes dans la choucroute (si je puis dire )
    Quand tu lances la requête, le curseur est placé devant le premier.
    Tu fais -5, où crois-tu être ?

    Il faudrait au préalable faire un afterLast()...

    Mais bon, la remarque de _tchize reste valable...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    Bordel, c'est seulementl deleteRow() qui me cause problème.


    Je veux effacer un enregistrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public static void effacer() {
    		if (con == null)
    			getConnection();
     
    		try {
     
    			Statement stmt = con
    					.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    							ResultSet.CONCUR_UPDATABLE);
     
    			ResultSet rs = stmt
    					.executeQuery("SELECT * FROM Commandes WHERE [No commande] = 10330");
    			rs.next();
     
    			rs.deleteRow();
     
    			/*ResultSet rs2 = stmt
    					.executeQuery("SELECT * FROM Commandes WHERE [No commande] = 10340");
    			rs2.deleteRow();*/
     
    			/*ResultSet rs3 = stmt
    					.executeQuery("SELECT * FROM Commandes WHERE [No commande] = 10350");
    			rs3.deleteRow();*/
    			stmt.close();
    			con.close();
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    Fonctionne pas plus. Je vous rappelle que je dois utiliser deleteRow() et non DELETE * FROM

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par punisher999 Voir le message
    Fonctionne pas plus. Je vous rappelle que je dois utiliser deleteRow() et non DELETE * FROM
    si tu précisais le "fonctionne pas"? T'as une exception? La donnée n'est pas supprimée? La mauvaise donnée est supprimée?

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access]Erreur dans la ligne
    	at sun.jdbc.odbc.JdbcOdbcResultSet.setPos(Unknown Source)
    	at sun.jdbc.odbc.JdbcOdbcResultSet.deleteRow(Unknown Source)
    	at Exercice.Exercice5.effacer(Exercice5.java:136)
    	at Exercice.Exercice5.main(Exercice5.java:216)

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ok, pourrais-tu montrer la manière dont tu crée la connection?

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    Voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public class Exercice5 {
     
    	static Connection con;
     
    	public static Connection getConnection() {
    		try {
    			Class.forName("oracle.jdbc.OracleDriver");
    			con = DriverManager.getConnection("jdbc:oracle:thin:@oracle1:1521:orcl", "ora05", "ps3");
    		} catch (ClassNotFoundException cnfex) {
    			System.err.println("Échec du chargement du pilote JDBC/ODBC.");
    			cnfex.printStackTrace();
    			System.exit(1);
    		} catch (SQLException sqlex) {
    			System.err.println("Connexion impossible");
    			sqlex.printStackTrace();
    			System.exit(1);
    		}
    		return con;
    	}

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    difficile pour moi de croire que ce soit ce code là. Quand je lit ton exception, tu passe par le driver ojdbc, quand je lit ton code, tu passer par le driver oracle.

  11. #11
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    Qu'est-ce que tu aurais fait toi ?

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    c'est pas ce code qui a pu créer une connection a qui a déclencher l'exception mentionnée, puisque le code et l'exception n'utilisent manifestement absolument pas le même driver. Soit c'est une vielle exception que t'a repéché, soit t'as changé ton code depuis l'exception, soit t'as du code ailleurs qui recrée une autre connection passant par ojdbc. Mais c'est certainement pas avec le code mentionné que t'as créé ta connection liée à l'exception affiché:


    java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access]
    con = DriverManager.getConnection("jdbc:oracle:thin:@oracle1:1521:orcl", "ora05", "ps3");

  13. #13
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    J'ai changé pour une connection a une base de donnée Oracle

    J'ai dû tout changer, mais j'ai des numéros j'avais pas d'erreur et maintenant, j'ai des erreurs

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    donne nous tes erreurs exactes (stacktrace) *et* le code qui correspond (code d'utilisation et code de connection), sans çà, difficile de t'aider

  15. #15
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par punisher999 Voir le message
    Bordel, c'est seulementl deleteRow() qui me cause problème.
    ...
    Il s'agirait de respecter les règles du forum !
    http://club.developpez.com/regles/

    Ce genre de vocabulaire n'a pas sa place ici, merci d'en tenir compte et encore mieux, de corriger le post
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. absolute en Delphi
    Par ADMR dans le forum Langage
    Réponses: 14
    Dernier message: 10/01/2010, 09h50
  2. Bloc DIV absolute et contenu déborde
    Par Royd938 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/10/2005, 16h45
  3. [css]opéra height 100% absolute
    Par spirou dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/10/2005, 22h10
  4. [HTML/CSS] position absolute et centrage
    Par LE NEINDRE dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 23/08/2005, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo