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

VB 6 et antérieur Discussion :

[VB6][SQL] Convertion de code en SQL


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut [VB6][SQL] Convertion de code en SQL
    Bonjour à tous, j'ai un petit souci de convertion. je souhaite convertir le code qui suit en ordre SQL mais je ne voie vraiment pas comment faire.

    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
     sRequete = "select * from TPUTILIS"
            selTPUTILST.Open sRequete, gConexion, adOpenStatic, adLockReadOnly, adCmdText
     
            sRequete = "SELECT * FROM TPUTIETA"
            upd.Open sRequete, gConexion, adOpenStatic, adLockOptimistic, adCmdText
     
            Do Until selTPUTILST.EOF
     
                upd.AddNew
                upd!UTILISC = selTPUTILST!UTILISC
                upd!FORMATY = "Ordre Mission"
                upd!FORMATL = selTPUTILST!FRMOM0L
                upd!IMPRIML = selTPUTILST!IMPOM0L
                upd!CHOIX0C = selTPUTILST!CHXOM0C
                upd!NEXEMPQ = selTPUTILST!NEXOM0Q
                upd!DERMAJC = "SMS"
                upd!DERMAJD = Date + Time
                upd!CREATIC = "SMS"
                upd!CREATID = Date + Time
     
                upd.Update
                 selTPUTILST.MoveNext
                 Loop
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    qqch comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO TPUTIETA
    (FORMATY, FORMATL, IMPRIML, CHOIX0C, 
      NEXEMPQ, DERMAJC, DERMAJD, CREATIC, CREATID)
    SELECT 'OrdreMission', FRMOM0L, IMPOM0L, CHXOM0C, 
      NEXOM0Q, 'SMS', NOW(), 'SMS', NOW()
    FROM TPUTILST

  3. #3
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Je te remercie de t'être penché sur mon problème, je vais tester ta solution, mais j'aurai bien aimé conservé le même type de structure : un curseur, un tant que. Si tu sait comment faire je t'en serais très reconnaissant.

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Le curseur est inutile, contre-productif, et dépendant du SGBD. Le code que je t'ai donné insère en bloc de manière ensembliste bcp + efficace.

  5. #5
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Ta solution ne peut pas marcher, je suis obligé de passer par une boucle puisque je doit créer autant de ligne que j'ai de UTILISC.

    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
     sRequete = "select * from TPUTILIS"
            selTPUTILST.Open sRequete, gConexion, adOpenStatic, adLockReadOnly, adCmdText
     
            sRequete = "SELECT * FROM TPUTIETA"
            upd.Open sRequete, gConexion, adOpenStatic, adLockOptimistic, adCmdText
     
            Do Until selTPUTILST.EOF
     
                upd.AddNew
                upd!UTILISC = selTPUTILST!UTILISC
     
                ...
     
                upd.Update
                 selTPUTILST.MoveNext
                 Loop

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par Sytchev3
    Ta solution ne peut pas marcher,
    c'est pas beau d'avoir des a-priori ! Je t'ai proposé une INSERT... SELECT, qui prend toutes les lignes de TPUTILIS et les copie dans TPUTIETA. Ce n'est pas ça que tu voulais ?
    Citation Envoyé par Sytchev3
    je suis obligé de passer par une boucle puisque je doit créer autant de ligne que j'ai de UTILISC.
    En BDD, on n'est presque jamais obligé de faire des boucles. Le SGBD est là pour optimiser des traitements en masse, et non pour travailler ligne par ligne.

  7. #7
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Je suis bien d'accord avec toi, mais moi je souhaite qu'à chaque ligne de TPUTILIS (chaque fois que j'ai un UTILISC différent) je mette à jour ma table TPUTIETA.

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Par défaut
    Le code de Antoun me semble intéressant, il faut peut-être simplement ajouter le premier champ. Il s'agit peut-être d'un oubli ou peut-être qu'étant donnée que les champs on le même nom dans les 2 tables qu'on a pas besoin de les mentionner explicitement (je suis loin d'être une pro dans le domaine mais ça m'intéresse )

    Alors je te propose d'essayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO TPUTIETA
    (UTILISC, FORMATY, FORMATL, IMPRIML, CHOIX0C, 
      NEXEMPQ, DERMAJC, DERMAJD, CREATIC, CREATID)
    SELECT UTILISC, 'OrdreMission', FRMOM0L, IMPOM0L, CHXOM0C, 
      NEXOM0Q, 'SMS', NOW(), 'SMS', NOW()
    FROM TPUTILST
    Tiens nous au courant de tes essais.

    Bonne chance!

  9. #9
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Je tenais à vous remercier (Antoun et Mymi), j'ai testé la solution proposée et ça marche impecablement.

    Encore merci.

  10. #10
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Par contre j'ai du remplacer le NOW puisque j'utilise SQL SERVER :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO TPUTIETA
    (UTILISC, FORMATY, FORMATL, IMPRIML, CHOIX0C, 
      NEXEMPQ, DERMAJC, DERMAJD, CREATIC, CREATID)
    SELECT UTILISC, 'OrdreMission', FRMOM0L, IMPOM0L, CHXOM0C, 
      NEXOM0Q, 'SMS', GETDATE(), 'SMS', GETDATE()
    FROM TPUTILST

  11. #11
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par Mymi
    Le code de Antoun me semble intéressant, il faut peut-être simplement ajouter le premier champ. Il s'agit peut-être d'un oubli ou peut-être qu'étant donnée que les champs on le même nom dans les 2 tables qu'on a pas besoin de les mentionner explicitement
    C'est juste un oubli de ma part désolé !

  12. #12
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Ca n'est pas dramatique puisque ta solution marche désormais. Merci Beaucoup

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

Discussions similaires

  1. Code sql oracle vers code sas sql
    Par guigui77 dans le forum SAS Base
    Réponses: 1
    Dernier message: 10/07/2014, 15h59
  2. Fonction PL/SQL dans du code VB6
    Par pupucette dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 25/05/2012, 10h37
  3. comment appeler un fichier sql dans un code pl/sql
    Par Z3phur dans le forum PL/SQL
    Réponses: 3
    Dernier message: 13/02/2009, 11h17
  4. Code retour SQL server sous centura
    Par MorbidAngel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/09/2005, 14h07
  5. [VB6] Lancer un service, par exemple Sql Server
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 14h07

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