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

DB2 Discussion :

Instruction select avec deux critères


Sujet :

DB2

  1. #1
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut Instruction select avec deux critères
    Bonjour les amis;

    Je dois afficher des données d'une table d'une base DB2 sous as400. A partir de java j'ai mis en place cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete = "SELECT B33STFC.FTARTL01.* FROM B33STFC.FTARTL01 WHERE (B33STFC.FTARTL01.CRAYAR='205') AND (B33STFC.FTARTL01.CRAYAR='208')";
    Malheureusement au lancement de mon application j'ai une erreur de ce type :
    Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 11, Size: 0
    at java.util.ArrayList.RangeCheck(ArrayList.java:547)
    at java.util.ArrayList.get(ArrayList.java:322)
    at ci.interGraph.FrmArticle.getTxtCodeBarre(FrmArticle.java:338)
    at ci.interGraph.FrmArticle.getjContentPane(FrmArticle.java:190)
    at ci.interGraph.FrmArticle.getjContentPanel(FrmArticle.java:141)
    at ci.interGraph.FrmArticle.initialize(FrmArticle.java:123)
    at ci.interGraph.FrmArticle.<init>(FrmArticle.java:92)
    at ci.proviande.main.MainFrm.<init>(MainFrm.java:89)
    at ci.proviande.main.Starter$1.run(Starter.java:20)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Est-ce au niveau de ma requête car avec un seul critère ma requête fonctionne ?
    Votre aide sera très précieuse pour moi.
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    Citation Envoyé par the watcher Voir le message
    Est-ce au niveau de ma requête car avec un seul critère ma requête fonctionne ?
    Bizarre, bizarre ce celà fonctionne pour un critère par pour l'autre.
    M'enfin essaye plûtot cette requête et ce n'est pas la peine de qualifier les zones quand tu les utilises surtout quand tu ne requête q'une seule table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete = "SELECT * FROM B33STFC.FTARTL01 WHERE CRAYAR IN ('205', '208')";
    Je présume que c'est un OR à la place d'un AND.
    Dans ce cas il vaut mieux utiliser IN plutôt que OR.
    Car je ne vois pas comment dans ta requête initiale CAYAR peut être égal à '205' et en même temps égal à '208'

  3. #3
    Membre régulier Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par K2R400 Voir le message
    Car je ne vois pas comment dans ta requête initiale CAYAR peut être égal à '205' et en même temps égal à '208'
    Merci K2R400 pour ta réponse.
    En effet '205' et '208' sont mes critères de sélection des informations de la table. Dans la colonne nommée CAYAR. le code peux être '205' ou '208' alors j'ai besoin de ces deux.
    L'important n'est pas de tout savoir mais de savoir où tout se trouve !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 102
    Points : 34
    Points
    34
    Par défaut pro de requete
    bonjour a tous j'ai un souci de requete que je traine depuis un bout de temps sans avoir vu le problème,ma requete "SELECT ne s'execute pas elle me resort l'exception que je leve dans la requete.voici mon code:
    j'utilise un jframe je ne sais pas si mes errurs sont également dûes au code qu'il genere automatiquement.aidez moi

    [code] private void rechercherActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    String user = "root";
    String password = "pytheas";
    ResultSet rs = null;
    Statement st = null;
    Connection con=null;
    try{
    Class.forName("com.mysql.jdbc.Driver");
    String url="jdbc.mysql://localhost:3306/banque";
    con=(Connection) DriverManager.getConnection(url, user, password);
    st=con.createStatement();
    Code sql : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     String rq="select NomClt,PrenomClt,SoldeCpt from Compte where NumCpte='" + numcptposition.getText() + "'";/* a ce niveau il me leve l'execption suivante erreur de requete dans ma boite de dialogue pourtant je ne vois pas de probleme dans ma requete*/:
                rs = st.executeQuery(rq);
                String numcompte="";
                String nomposition="";
                String prenomposition="";
                String montant;
                float soldeposition;
     
                while(rs.next())
                {
                    numcompte = rs.getString("NumCpte");
                    nomposition = rs.getString("NomClt");
                    prenomposition = rs.getString("PrenomClt");
                    //soldeposition = rs.getFloat("SoldeCpt");
                    montant=rs.getString("SoldeCpt");
                    soldeposition=rs.getFloat(montant);/*ici j'ai converti le montant  saisie dans le jtexfield le recupérer dans la varible */
     
                }
                numcptposition.setText(numcompte);
                nomrsposition.setText(nomposition);
                prenomrsposition.setText(prenomposition);
               // montantposition.setText(soldeposition);
     
     
            }catch(ClassNotFoundException e)
            {
               JOptionPane.showMessageDialog(null,"Mauvais Driver","Erreur",JOptionPane.ERROR_MESSAGE);
            }catch(SQLException sq)
            {
             JOptionPane.showMessageDialog(null,"Erreur de la requête","Erreur",JOptionPane.ERROR_MESSAGE);
            }
            finally
            {
                if(st == null)
                {
                 try
                 {
                   st.close();
                 }catch(SQLException e)
                 {
                  e.printStackTrace();
                 }
                }
                if(con!=null)
                {
                 try
                 {
                   con.close();
                 }catch(SQLException e1)
                 {
                  e1.printStackTrace();
                 }
     
            }
     
            }
        }                                          
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
     
                public void run() {
                    new Position().setVisible(true);
                }
            });
        }
        // Variables declaration - do not modify                     
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JLabel jLabel4;
        private javax.swing.JTextField montantposition;
        private javax.swing.JTextField nomrsposition;
        private javax.swing.JTextField numcptposition;
        private javax.swing.JTextField prenomrsposition;
        private javax.swing.JButton rechercher;
        // End of variables declaration                   
    }

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

Discussions similaires

  1. editer avec deux critères de selection
    Par chidap dans le forum Langage
    Réponses: 9
    Dernier message: 01/04/2013, 17h17
  2. probléme filtre avec deux critéres?
    Par dj_techno dans le forum Bases de données
    Réponses: 9
    Dernier message: 31/05/2007, 09h57
  3. Requête SELECT avec deux champs dans une colonne ??
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 08/06/2006, 10h41
  4. Instructions select case à deux conditions
    Par Celia1303 dans le forum Access
    Réponses: 15
    Dernier message: 14/10/2005, 16h22
  5. [CR] instruction If avec deux opérations
    Par MaDmAtT dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 19/07/2004, 13h54

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