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 :

Requête SQL INSERT [WD12]


Sujet :

WinDev

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut Requête SQL INSERT
    Bonjour à tous,

    J'aurai besoin d'une petite confirmation concernant la syntaxe SQL de :
    INSERT INTO monFichier SELECT ...

    En WD12, l'aide ne fait pas d'allusion à cette syntaxe et visiblement la syntaxe pose problème lors de son exécution. Un message me signale que le nombre de valeurs à insérer est différent du nombre de rubrique, or il s'agit de 2 fichiers identiques avec les mêmes noms de rubrique.

    Dans l'aide en ligne, cette syntaxe est citée et la version minimum concernant les instructions SQL est la 9.

    Pour info, j'exécute cette syntaxe sur une base HF Classic. J'ai déjà utilisé HcopieEnreg(..) mais les temps sont longs et je voulais essayer en mode "SQL".

    Est-ce que les heureux possesseur de la 14 pourraient me signaler la présence de cette syntaxe dans les instructions SQL ?

    Les possesseurs de la 12, avez-vous déjà utilisé cette syntaxe ou avez-vous utilisé une autre méthode ?

    Merci à tous

  2. #2
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 766
    Points
    766
    Par défaut
    Bonjour Lo²,

    Je ne sais pas si cela peut vous aider, mais voici une des requêtes que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    INSERT INTO STOCKS
                          (STOC_SITE, STOC_PROPRIETAIRE, STOC_EMPLACEMENT, STOC_ARTICLE, STOC_UC1, STOC_UC2, STOC_LOT, STOC_SERIE, stoc_quantite, STOC_ETAT, 
                          STOC_DATE_ENTREE, STOC_DATE_MOUVEMENT, STOC_LIBRE1, STOC_LIBRE2, STOC_LIBRE3)
    SELECT     MOUV_SITE, MOUV_PROPRIETAIRE, MOUV_EMPLACEMENT, MOUV_ARTICLE, MOUV_UC1, MOUV_UC2, MOUV_LOT, MOUV_SERIE, 
                          SUM(MOUV_QUANTITE) AS Expr2, MOUV_ETAT, MOUV_DATE, MOUV_DATE AS Expr1, MOUV_LIBRE1, MOUV_LIBRE2, MOUV_LIBRE3
    FROM         MOUVEMENTS
    WHERE     (MOUV_DATE = '20100128') AND (MOUV_CODE_MOUV = 'PACK') AND ((MOUV_EMPLACEMENT + '|' + MOUV_ARTICLE) NOT IN
                              (SELECT     STOC_EMPLACEMENT + '|' + STOC_ARTICLE AS Expr1
                                FROM          STOCKS))
    GROUP BY MOUV_SITE, MOUV_PROPRIETAIRE, MOUV_EMPLACEMENT, MOUV_ARTICLE, MOUV_UC1, MOUV_UC2, MOUV_LOT, MOUV_SERIE, MOUV_ETAT, 
                          MOUV_DATE, MOUV_LIBRE1, MOUV_LIBRE2, MOUV_LIBRE3
    Au cas ou
    Bonne après midi
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Merci Raptor, c'est exactement cela.

    Tu utilises la 12 ?
    Si oui, tu utilises HExécuteRequêteSQL ("maReq", hRequêteDéfaut, maRequeteSQL) ?

  4. #4
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 766
    Points
    766
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Merci Raptor, c'est exactement cela.

    Tu utilises la 12 ?
    Si oui, tu utilises HExécuteRequêteSQL ("maReq", hRequêteDéfaut, maRequeteSQL) ?
    Lo²,

    J'utilise WD14, mais j'utilisais déjà ce code en WD12.

    pour ta deuxième question, je suis désolé, mais je travaille avec un serveur SQL 2005.
    Ce qui fait que j'utilise plutôt ce code:

    RequêteInsert est une chaîne:" La requête........."

    SI SQLExec(RequêteInsert,"reqGénérale") ALORS
    SQLTable("reqGénérale",TABLE_TEST3)

    FIN

    Mais de là, j'imagine que vous allez savoir l'adapter en HF
    Bon courage et à votre disposition
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Je suis plus habitué à requêter sur des bases externes via SQLExec.

    Malheureusement, pour le faire en HF, je pense qu'il existe une limitation sur la syntaxe INSERT en WD12 qui n'est plus valable sur les versions suivantes.

    Merci pour ces infos.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Que vous vous compreniez bien. Lo² souhaite apparemment utiliser du "SQL Windev", entendre par là que Windev est capable d'interpreter dans ses ordres Hxxx (exécution de requête stockée ou HExecuteRequeteSQL avec correction).

    Une requête exécutée par SQLExec n'est pas "touchée" par Windev (dieu nous garde) et ne pose donc aucun problème tant que vous utilisez du SQL qui tourne avec votre base de données.

    Et pour Lo², voici ce que j'ai dans l'aide de WD14 :

    INSERT avec sélection

    L'instruction INSERT peut également être utilisée pour insérer une sélection d'enregistrements réalisée par une requête SELECT. Son format d'utilisation devient :

    INSERT INTO NomDuFichier [(NomDesRubriques)] SELECT ...


    Remarques :

    Le nombre de rubriques à insérer doit être identique au nombre de valeurs renvoyées par la requête SELECT.

    Si aucune rubrique n'est précisée dans l'instruction INSERT, toutes les rubriques du fichier sont prises en compte.

    Ce type de requête ne peut pas être créé directement dans l'éditeur de requêtes.

  7. #7
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    oui c'est ça et l'aide WD14 confirme ce que je pensais

    Merci à tous les deux.

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

Discussions similaires

  1. Problème requête sql : INSERT INTO
    Par bobosh dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/08/2008, 10h43
  2. Requête SQL Insert Into
    Par jjg65 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/11/2007, 08h35
  3. Execution d'une requête SQL INSERT
    Par damien27000 dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/07/2007, 21h35
  4. Problème d'une requête SQL INSERT
    Par bejaad dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/07/2007, 12h53
  5. Réponses: 4
    Dernier message: 10/04/2007, 11h10

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