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 :

jdbc requete sql


Sujet :

JDBC Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut jdbc requete sql
    Bonjour,je voudrai faire une requete sql
    un insert into,
    mais j'ai une erreur,que je ne comprend pas,
    erreur:
    Erreur SQL : java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de donn?es Microsoft Office Access n'a pas pu trouver l'objet ??nom??. Assurez-vous que l'objet existe et que vous avez correctement saisi son nom et son chemin d'acc?s

    mon code est:
    base de donné:access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         Statement s = con.createStatement();
        int  NbIns ;
        NbIns=s.executeUpdate("INSERT INTO nom values (moi)");
        System.out.println(NbIns+" ligne insérée");

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu n'a pas de table intitulée "nom" dans ta base.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    je voudrai connaitre le nombre de champ dans ma table access a travers mon lien jdbc/odbc?c'est possible?
    si oui une methode pour m'aider svp?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    merci,lol
    je m'etai rendu compte que le 'nom' devait etre le nom de table et nom le nom de champ..

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par joukov Voir le message
    je voudrai connaitre le nombre de champ dans ma table access a travers mon lien jdbc/odbc?c'est possible?
    si oui une methode pour m'aider svp?
    Utilise le ResultSetMetaData
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ResultSet rs = stmt.executeQuery("select * from maTable");
    ResultSetMetaData rsmd = rs.getMetaData();
    ...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    voila ce que j'obtien:

    sun.jdbc.odbc.JdbcOdbcResultSetMetaData@e0e1c6
    "info de la base"



    Erreur SQL : java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access]Index de descripteur non valideB

    je my prend mal docteur??lol

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Montre le code, on pourra te dire si tu t'y prends mal...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    Merci

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    class Test {
     
     
        public Test() {
     
      try {
     
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     
       String login = "Admin";
                    String password = "";
                    String URL = "jdbc:odbc:cli";
                    Connection  con = DriverManager.getConnection(URL, login, password);
     
    Statement statement = con.createStatement();
     
     
    ResultSet rs;
    rs=statement.executeQuery("Select * From ref");
    ResultSetMetaData rsmd = rs.getMetaData();
                    System.out.println(rsmd);
     
     
      while(rs.next()) {
     
           for(int i = 2; i < 26; i++){
          String y=rs.getString(i);
           if(y != null ){
        System.out.println(y);
       }
           }
      }
     
       con.close();
      } catch( ClassNotFoundException e) {
       System.err.println("Erreur lors du chargement du pilote : " + e);
      } catch(SQLException sqle) {
       System.err.print("Erreur SQL : " + sqle);
      }
     }
     
    }

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    A ben vu comme ça, c'est sûr que ça ne fait pas grand chose.
    Il faut regarder la doc de ResultSetMetaData pour voir ce que tu peux récupérer comme informations.
    Teste également rsmd != null, il se pourrait que le driver odbc ne soit pas capable de faire ce genre de choses...
    On peut imaginer un traitement comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ResuletSet rs = stmt.executeQuery("select * from Personne");
    ResultSetMetaData rsmd = rs.getMetaData();
    if (rsmd != null)
    {
        for (int i = 0; i < rsmd.getColumnCount(); i++)
        {
          System.ou.println("Colonne : " + rsmd.getColumnName(i+1));
        }
    }
    ...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    Merci beaucoup
    j'ai un peu modifier ton code pour afficher le nombre,mais c'est la bonne methode,merci

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    petite question,aucun raport avec les db,
    je veut afficher des info contenu dans ma classe test dans ma classe fenetre (jframe) dans un jTextField,
    un coup de main??lol

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Si ta classe JFrame à une instance de la classe Test, il n'y a pas de problème particulier pour mettre les données dans un JTextField.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    JtextField leChamp = new JTextField();
    leChamp.setText(monInstanceTest.getUnePropriete());
    ...
    C'est une question piège ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    atten je t'envoi le code de ma jframe,encor desoler j'ai plus aucun souvenir...
    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
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    /*
     * fen.java
     *
     * Created on 3 juin 2010, 09:50:53
     */
     
    package db;
     
    import javax.swing.JTextField;
     
    /**
     *
     * @author joukov
     */
    public class fen extends javax.swing.JFrame {
     
        /** Creates new form fen */
        public fen() {
            initComponents();
     
       Test test;
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
     
            jLabel1 = new javax.swing.JLabel();
            jTextField1 = new javax.swing.JTextField();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            jLabel1.setText("Nombre de colonne:");
     
            jTextField1.setText("jTextField1");
            jTextField1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jTextField1ActionPerformed(evt);
                }
            });
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(33, 33, 33)
                    .addComponent(jLabel1)
                    .addGap(18, 18, 18)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(194, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(38, 38, 38)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel1)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap(242, Short.MAX_VALUE))
            );
     
            pack();
        }// </editor-fold>
     
        private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
            JtextField1 leChamp = new JTextField();
    leChamp.setText(Test.getUnePropriete());
        }
     
        /**
        * @param args the command line arguments
        */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new fen().setVisible(true);
                }
            });
        }
     
        // Variables declaration - do not modify
        private javax.swing.JTextField jTextField1;
        // End of variables declaration
     
    }

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ce serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
       // TODO add your handling code here:
       JtextField1 leChamp = new JTextField();
       leChamp.setText(test.getUnePropriete()); <-- l'instance est test, la classe Test
     }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Vu le code, je parie que tu as une NullPointerException
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    pas sympa de ce moquer!lol
    ba non enfaite je croi que j'ai un souci avec ma class

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    lol,je recommence:
    je veut appelé cette fonction et afficher par exemple le nombre de colone,etc:
    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
    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
     
    /**
     *
     * @author joukov
     */
    class Test {
     
     
        public Test() {
     
      try {
     
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     
       String login = "Admin";
                    String password = "";
                    String URL = "jdbc:odbc:test";
                    Connection  con = DriverManager.getConnection(URL, login, password);
     
     
     
          Statement s = con.createStatement();
     
    ResultSet rs;
    rs=statement.executeQuery("Select * From Prospects_a_jour");
     
    ResultSetMetaData rsmd = rs.getMetaData();
     
    if (rsmd != null)
    {
        for (int i = 0; i < rsmd.getColumnCount(); i++)
        {
     
     
          System.out.println("champ:" +rsmd.getColumnName(i+1));
     
        }
        System.out.println("nbre de colone:" +rsmd.getColumnCount());
     
    }
     
     while(rs.next()) {
     
           for(int i = 2; i < rsmd.getColumnCount(); i++){
          String y=rs.getString(i);
           if(y != null ){
        System.out.println(y);
       }
           }
      }
     
       con.close();
     
      } catch( ClassNotFoundException e) {
       System.err.println("Erreur lors du chargement du pilote : " + e);
      } catch(SQLException sqle) {
       System.err.print("Erreur SQL : " + sqle);
      }
     }
     
    }
    dans une fenêtre,
    il me faut des constructeur pour retourné des valeur??
    ces constructeur doive etre dans la class ou dans la fenetre??
    MERCI

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/03/2009, 10h47
  2. [JDBC]Caractères spéciaux dans une requete SQL
    Par frizby dans le forum JDBC
    Réponses: 2
    Dernier message: 28/11/2005, 18h01
  3. [JDBC][SQL] Parser une requête SQL
    Par tomca dans le forum JDBC
    Réponses: 11
    Dernier message: 24/10/2005, 23h13
  4. [java/jdbc]SIMPLE REQUETE SQL: expression abssente
    Par b_52globemaster dans le forum JDBC
    Réponses: 6
    Dernier message: 16/08/2005, 11h38
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40

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