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

Requêtes MySQL Discussion :

Insertion de requete dynamique


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut Insertion de requete dynamique
    Bonjour

    Je tente de créer une requete d'insertion dynamique SQL , mais je ne parviens pas à obtenir le resultat que je souhaite.

    J'ai une table contenant plusieurs colonnes.
    Chaque item correspond a un enregistrement d'une colonne.
    L'association des données se fait sequentiellement.
    Typiquement la requete devrait se comporter de cette façon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     insert into values( '' ,'"+ node.item(0).getFirstChild().getNodeValue()+'",'"+ node.item(1).getFirstChild().getNodeValue()+'",'"+ node.item(2).getFirstChild().getNodeValue()+'",'"+ node.item(3).getFirstChild().getNodeValue()+'",'"+ node.item(4).getFirstChild().getNodeValue()+'",'"+ node.item(5).getFirstChild().getNodeValue()+'"");
    Voila ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
                    for (int i = 0; i < nodes.getLength(); i++) 
                    {                  
                         System.out.println(" valeur " +nodes.item(i).getFirstChild().getNodeValue());      
                        strsql = "insert into machine values('','"+nodes.item(i).getFirstChild().getNodeValue()+"',";
                     }      
                         int nb  =  strsql.lastIndexOf(","); 
                         strsql =  strsql.substring(0,nb);
                         strsql += ");";  
                         System.out.println(strsql);    
                         stmt.executeUpdate(strsql);
    Je sais qu'il y a une erreur dans cette requete , il est normal qu'elle m'affiche que la derniere valeur de l'enregistrement. Je ne vois pas comment m'y prendre?

    Pourriez vous m'aider Merci

    stardeus

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut
    Je viens de me relire et j'avoue que je n'etais pas tres clair milles excuses.

    Donc je désire inserer des valeurs au fur et a mesure dans ma BDD.
    chaque fois que j'ajoute des valeurs , celles ci s'associent respectivement a des colonnes de la table. Elles s'intègrent sequentiellement.

    Typiquement:
    mes données : toto , tata ,titi
    ma table : popo contenant 3 colonnes

    dans ma table popo j'aurais toto, tata , titi


    Avec le code que je realisais: j'obtiens
    dans la table j'ai 'titi'

    Auriez vous une idée de comment je peux specifier que les valeurs ajoutés correspondent à des colonnes respectives?

  3. #3
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Salut,

    Ca ne risque pas de marcher. A chaque itération, tu écrases "strsql" au lieu de concaténer.

    Regarde du côté de String.implode(). Si "nodes" est une collection, tu peux générer facilement la requête avec quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strsql = "insert into machine values('', " + String.implode(nodes, ",");

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut
    Bonjour

    Dans la doc java SE 1.4 je ne trouve la methode implode dans la classe
    String package java.lang

    Ou puis je trouver cette methode

    stardeus

  5. #5
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Au temps pour moi, ce n'est pas une méthode de l'API officielle.

    Corrige ton code, et ça devrait quand même fonctionner :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    strsql = "insert into machine values('',";
     
    for (int i = 0; i < nodes.getLength(); i++) 
    {                  
             strsql = strsql + "'" + nodes.item(i).getFirstChild().getNodeValue() + "',";
    }
     
    int nb  =  strsql.lastIndexOf(","); 
    strsql =  strsql.substring(0,nb);
    strsql += ");";  
    System.out.println(strsql);    
    stmt.executeUpdate(strsql);

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 172
    Par défaut
    Bonjour


    je te remercie ça fonctionne parfaitement


    stardeus

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

Discussions similaires

  1. MigrationForms6i_9i&Requete-Dynamique-Reoprts
    Par dev_ora_moimeme dans le forum Reports
    Réponses: 4
    Dernier message: 11/01/2006, 12h17
  2. requetes dynamique
    Par ghostdog dans le forum C
    Réponses: 3
    Dernier message: 17/10/2005, 16h45
  3. requete dynamique
    Par cyrill.gremaud dans le forum ASP
    Réponses: 2
    Dernier message: 14/09/2005, 18h49
  4. Réponses: 4
    Dernier message: 30/01/2005, 15h23
  5. requete dynamique
    Par Tigresse dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/08/2003, 16h52

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