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 :

Suppression d'une ligne dans un RowSet


Sujet :

JDBC Java

  1. #1
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut Suppression d'une ligne dans un RowSet
    Bonjour,

    je récupère un rowSet dans lequel j'aimerais modifier selon ce que contient une arrayList.
    Je souhaite içi supprimer de la manière suivante :

    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
    try{
                RowSet rsAnimation = editionCaracCommercialeControl.getAnimationCommAssociee(codeEnseigne, langueUtilisateur, 31) ;            
                int index = 0;
                while(rsAnimation.next())
                {
                    if(this.filtreEmplacementAnimComm.contains(rsAnimation.getString(2)))
                        {
    //on doit supprimer cette ligne
                        rsAnimation.relative(index);
                        rsAnimation.deleteRow();
                        }                
                    index++;
                }
     
                tableauAnimation = new Tableau(rsAnimation, false) ;    
             }
            catch (SQLException se){
                        }

    Mais ca ne fonctionne pas. Je ne comprends pas vraiment à quoi sert le " relative " ... j'ai vu ca dans le tutorial mais pas moyen de l'appliquer a mon cas.

    Merci.
    .-*K.E.U.B*-.

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Salut,

    La méthode relative() permet de te déplacer sur le resultset d'un certain nombre d'enregs (ici, "index") à partir de ton enregistrement courant. C'est le complément d'absolute() qui elle te permet de te placer sur un numéro d'enreg donné.

    C'est pourquoi je ne comprends pas trop à quoi te sert relative si tu es déjà positionné sur la ligne à supprimer...

  3. #3
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Ok mon code est devenu ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            try{
                RowSet rsAnimation = editionCaracCommercialeControl.getAnimationCommAssociee(codeEnseigne, langueUtilisateur, 31) ;            
                while(rsAnimation.next())
                {
                    if(this.filtreEmplacementAnimComm.contains(rsAnimation.getString(2)))
                        {                  
                        rsAnimation.deleteRow();
                        }                
                }
     
                tableauAnimation = new Tableau(rsAnimation, false) ;    
                tableauAnimation.preparerElementFiltre() ;
            }
            catch (SQLException se){

    Mais voilà mon tableau est vide alors que le resultSet contient bien les bonnes informations.
    .-*K.E.U.B*-.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Tu parcours ton resultset, tu supprimes des lignes et ensuite tu crées un tableau en lui passant ce resultset... Peut-être est-ce que tu supprimes toutes les lignes de ton RS, d'où ton tableau vide...

    Par ailleurs, quel est le réel but de ton bout de code (il y a peut-être plus facile que de passer un resultset à un objet tier...) ???

  5. #5
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    merci de tes réponses.
    Donc le résultSet n'est pas vide. On dirait qu'il ne valide pas mes modifications une fois sortie du while puisque je retrouve les lignes qui m'on été indiquées comme supprimées...


    Et non je n'ai pas d'autres choix que de modifier directement le rowSet ... Sinon je ne serais pas là
    .-*K.E.U.B*-.

  6. #6
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Donc personne ne sait supprimer une ligne dans un rowSet ?
    .-*K.E.U.B*-.

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Citation Envoyé par keub51 Voir le message
    merci de tes réponses.
    Donc le résultSet n'est pas vide. On dirait qu'il ne valide pas mes modifications une fois sortie du while puisque je retrouve les lignes qui m'on été indiquées comme supprimées...
    Il faut peut-être commiter, mais ça peut poser problème si tu veux gérer la transaction au niveau global de ton traitement. Sinon, tu peux ensuite tester tes lignes supprimées avec isDeleted, ça devrait te répondre true.

    Citation Envoyé par keub51 Voir le message
    Et non je n'ai pas d'autres choix que de modifier directement le rowSet ... Sinon je ne serais pas là
    Pardon d'avoir douté

  8. #8
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Oui " isDeleted()" me renvoie true mais au final elle reste là ...
    un UpdateRow() a la suite du delete n'a aucun effet non plus car il cherche a updater la base en meme temps .. ce qui est impossible en mode deconnecté.

    Comment commiter mes modifications ?

    N'y a t'il pas un moyen de copier seulement des bonnes informations dans un autre rowSet ?
    Ou même de le le mettre dans un resultSet .. ?
    Enfin je suis à court d'idées là ... HELP PLZ
    .-*K.E.U.B*-.

  9. #9
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    Il est où le tag " non résolu " ? lol
    Bon bah tanpis j'abandonne sniff" personne ne sait répondre ... ( ultime tentative pour espérer obtenir une réponse ... )
    .-*K.E.U.B*-.

  10. #10
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Il est où le tag "va voir dans la FAQ" ???

    http://java.developpez.com/faq/jdbc/...lidationModRSD

  11. #11
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    J'ai déjà été voir la FAQ avant de poster ce post...

    rowset.updateRow(); << quand je fais cette methode il se plante ( il essaye surment d'updater la base en meme temps alors qu'il ny est plus connecté ... )

    rowset.acceptChanges(); << et je ne trouve pas cette methode ...
    .-*K.E.U.B*-.

  12. #12
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    C'est quelle version du JDBC ?

  13. #13
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    j'ai réussi a contourner le problème. Merci de tes réponses ET de ta patience lol

    Jmet en " résolu"
    .-*K.E.U.B*-.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTable] suppression d'une ligne dans un JTable?
    Par hby dans le forum Composants
    Réponses: 14
    Dernier message: 15/03/2007, 14h44
  2. Interdire la suppression d'une ligne dans une BDD
    Par griese dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 30/06/2006, 10h32
  3. Réponses: 3
    Dernier message: 26/03/2006, 20h45
  4. [VB.net] Détection suppression d'une ligne dans Datagrid
    Par Cereal123 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/03/2006, 14h08
  5. [VB6]Suppression d'une ligne dans un fichier
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/02/2006, 11h20

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