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

WinDev Discussion :

Insertion massive avec Windev


Sujet :

WinDev

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Insertion massive avec Windev
    Bonjour à Tous

    Je veux insérer toutes les lignes de ma table dans ma base de donnée

    Voici mon code :

    Code wlangage : 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
     
     
    //PREPARATION DU SCRIT D'INSERTION
    sMaReq est une chaîne = [
    INSERT INTO données_entrants	(ref_transfert, ref_usertexte) VALUES 	(%1,	'%2' )
    ]
     
    POUR TOUTE LIGNE DE Table_pourenvoi
     
    sMaReq = ChaîneConstruit(sMaReq, "Null", montransfert, montransfertusertexte)
     
    SI PAS HExécuteRequêteSQL(REQ, MaConnexion1,hRequêteDéfaut, sMaReq) ALORS
    Erreur(HErreurInfo())
    SINON
    FIN	
     
    FIN

    Mon soucis est qu'à la fin de l'opération la première ligne de ma table est insérée deux fois dans ma base de données

    Mes questions sont les suivantes :
    0 - Je ne vois pas ou se trouve l'erreur ?
    1 - es normal que j'utilise HExécuteRequêteSQL dans ce cas ?
    2- Es qu'il n'existe pas d'autre moyens de faire des insertions massives ?

    Ps : j'utilise une base de donnée Mysql

    Merci à tous

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Dans un premier temps tu as 2 paramètres dans ta chaîne et tu en passes 3 à ChaineConstruit.
    Dans un 2° temps, de quelle type de table s'agit-il ?

    Est-ce normal d'utiliser HExécuteRequêteSQL ?
    Je dirais "Pourquoi pas", une autres solution est de créer une requête paramétrée avec l'éditeur de requête

    Concernant l'autre moyen, cela dépend du type de table (cf. 2° temps) un tableau de structure (ou de classe,) lié à ta table, peut très bien alléger ta procédure
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Dans un premier temps tu as 2 paramètres dans ta chaîne et tu en passes 3 à ChaineConstruit.
    Dans un 2° temps, de quelle type de table s'agit-il ?
    Oui je viens de corriger pour les paramètres. il s'agit d'un champ table rempli par programmation.

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonsoir
    Vous avez la commande LOAD DATA LOCAL INFILE qui est très rapide :
    https://mariadb.com/kb/en/load-data-infile/

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Je viens de trouver l'erreur,

    sMaReq= ChaîneConstruit(sMaReq, "Null", montransfert, montransfertusertexte)

    Cette variable se remplissait elle même en écrasant les autres données.

    @Yusep merci pour le lien sur la documentation

    Merci à tous

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/11/2013, 12h01
  2. Problème avec des insertions massives dans un ldap
    Par felix79 dans le forum Développement
    Réponses: 0
    Dernier message: 08/07/2011, 12h00
  3. Comment faire des inserts massivement et rapidement ?
    Par JYves dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 09/08/2006, 10h57
  4. insertion massive
    Par frantzgac dans le forum Débuter
    Réponses: 4
    Dernier message: 17/06/2005, 14h59
  5. INSERT multiples avec : rs.AddNew et .Update
    Par M.Zip dans le forum ASP
    Réponses: 4
    Dernier message: 03/12/2004, 15h53

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