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]probleme avec requête sql


Sujet :

JDBC Java

  1. #1
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut [JDBC]probleme avec requête sql
    bonjour,
    j'ai un problemes de requetes effectué sur une base access.
    la table est bonne, la requete SQL aussi (elle fonctionne sous access), l'erreur se produit lorsque je
    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 String[] chopeCol(String col, String table, String col2, String valeur)
        {
            Connection C = null;
            Statement S = null;
            String temp[] = null;
            try
            {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                C = DriverManager.getConnection("jdbc:odbc:gestemp","","");
                S = C.createStatement();
                S.executeQuery("SELECT "+col+" FROM "+table+" WHERE "+col2+" = '"+valeur+"'");
                ResultSet RS = S.getResultSet();
                while (RS.next())
                    {
                    temp[0] = RS.getString(1);
                    }
                RS.close();
                C.close();
            }
            catch (Exception e){}
            finally{
                if (C != null){ 
                    try {C.close();}
                catch(Exception e){};
            }
            return temp;
     
            }
        }
    l'erreur se produit au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    temp[0] = RS.getString(1);
    qui me renvoit une valeur NULL.
    pouvez vous m'aider svp?

    [ Modéré par Wichtounet]
    Ajout d'un tag dans le titre
    Les Règles du Forum

  2. #2
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Citation Envoyé par lkryss
    l'erreur se produit au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    temp[0] = RS.getString(1);
    qui me renvoit une valeur NULL.
    Ce n'est pas forcément un erreur (d'ailleurs penser à remplacer le "0" par un <<compteur à incrémenter>>) : si jamais tu as la valeur NULL en base, pour ta colonne en paramètre de requête.
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  3. #3
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    oui je vais penser au compteur mais la je suis encore a la période de test de ce bout de programme, donc je test uniquement que sur des champs correct de ma BDD, donc il ne devrait pas me renvoyer de valeurs null

    en fait ma base de données ne contient que 2 tuples et je fait ma requete pour obtenir un unique renseignement sur l'un des 2.

  4. #4
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Si tu n'as pas d' "Exception" de remontée, alors ton code est bon : c'est la requête et/ou les données en base qui sont mauvais.
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  5. #5
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    en fait lors du debugage le programme saute de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    temp[0] = RS.getString(1);
    au finally{...}

  6. #6
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par lkryss
    en fait lors du debugage le programme saute de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    temp[0] = RS.getString(1);
    au finally{...}
    Donc ca veut dire que tu as une exception et le problème, c'est que tu ne fais rien en cas d'exception. Remplace :

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catch (Exception e){e.printStackTrace();}

  7. #7
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    apres un coup d'oeil (rapide) je ne comprned pas comment marche printStackTrace.
    est il normal que le debugueur ne s'arrete pas dans le catch pour passer dirrectement a ce qu'il y a dans le finally?

  8. #8
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par lkryss
    apres un coup d'oeil (rapide) je ne comprned pas comment marche printStackTrace.
    est il normal que le debugueur ne s'arrete pas dans le catch pour passer dirrectement a ce qu'il y a dans le finally?
    Non ce n'est pas normal, normalement, lors d'une erreur avec le code que je t'ai donné, il devrait afficher l'erreur dans la sortie console, donc dans la sortie de ton EDI.

  9. #9
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    c'est ce que je pensais, mais comme il passe de mon While au finally il n'affiche rien...
    edit :
    je viens de lire :
    Si le bloc try ou lui-même ne comportent pas d'instruction "return", le programme se poursuit avec l'instruction qui suit le bloc finally.
    j'ai donc rajouté un return dans mon try, mais cela ne change rien.

  10. #10
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    tout simplement :
    si tu fais un
    select maColone from ...

    alors tu dois mettre getString(maColone)

    mais si tu fais un
    select * from ...

    alors tu dois mettre un getString(1)

    voila voila

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  11. #11
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    bien essayé Malvina
    mais j'avais deja essayé et ca fait toujours la meme erreur
    (d'ailleurs si je me rappel bien la methode getString peut etre appelé soit avec un nom de colonne soit avec l'index de la colonne, ca revient au meme dans ce cas la vu que je n'en ai qu'une)

  12. #12
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    en fait j'avais eu le même probleme mais a l'envers

    je faisais un select * et j'essayais d'acceder a une colonne par son nom alors que tu ne peux que par son numero avec un select * ...
    Désolé si je n'ai pas pu t'aider

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  13. #13
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    c'est gentil d'avoir essayé
    (merci a tous/tes pour votre aide d'ailleurs ^^)

  14. #14
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    autre chose, si ta colonne est vide, alors ca renvoit null
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  15. #15
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    ma colonne n'est pas vide, la requete marche, mais ce qu'il me renvoi (le getresult) contient 0 lignes, d'ou le null. mais je ne comprends vraiment pas pourquoi

  16. #16
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    si ta requete ne renvoie aucun resultat il est logique que tu ai un null ...

    verifies par sqlplus ou sql worksheet ou autre
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  17. #17
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    probleme resolu
    c'est tres bete en fait. j'ai oublié d'initialiser la valeur de temp tout betement, il suffisait donc de rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String temp = new String[1];
    temp[0] = new String();
    voili voilou erreur de jeunesse
    merci pour votre aide

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

Discussions similaires

  1. Probleme de requête SQL
    Par breizhoo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/08/2005, 22h22
  2. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53
  3. [JDBC] probleme avec les transactions
    Par lthomas dans le forum JDBC
    Réponses: 2
    Dernier message: 17/06/2005, 17h10
  4. [weblogic 8.1][JDBC] Probleme avec une requete
    Par Sniper37 dans le forum Weblogic
    Réponses: 3
    Dernier message: 08/04/2005, 11h11
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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