Comment executer 2 requetes SQL dans une même commande en VB.net

cs_Caussenard Messages postés 28 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 8 juillet 2008 - 12 juin 2008 à 15:59
cs_Caussenard Messages postés 28 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 8 juillet 2008 - 16 juin 2008 à 16:40
Bonjour, mon problème est le suivant:
Je veux executer 2 requetes SQL (en bleu et en maron)  dans une même commande, cette commande marche sous easyphp ainsi quand JAVA "avec le point vigule" mais pas au travers de VB2008.
Les bases de données sont sous MySQL.
J'utilise le driver MySQL ODBC 5.1

command = "INSERT INTO `bd_1`.`gamme`(num_phase, description_phase, element, affectation)" & _
        "SELECT num_phase, description_phase, element, affectation FROM `bd_1`.`gamme_std`WHERE num_phase='140' ;
" & _
               "UPDATE `bd_1`.`gamme`SET programme ='TEST', el='essais', tr='test' WHERE programme='' AND el='' AND tr=''"

Le but est de copier les données de `bd_1`.`gamme_std` sous `bd_1`.`gamme` avec les champs programme, el et tr en plus en une seulle commande.
Si vous avez une autre idée ou la bonne syntaxe?

Caussenard

5 réponses

Yurf98 Messages postés 10 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 10 juillet 2008
12 juin 2008 à 16:12
J imagine que deux commandes SQL est possible en JAVA, Moi en tout cas sur VB NET je n ai jamais essayer.

Ce que je fais, c est tes valeurs, les mettres dans des variables locales.

Puis executer l une puis l autres requetes.
0
cs_Caussenard Messages postés 28 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 8 juillet 2008 1
12 juin 2008 à 17:03
Je ne pense pas que ce soit un problème VB cette syntaxe est propre à MySQL puisqu'elle est comprise dans les guillemets.
Ce doit être donc dû au driver MySQL ODBC 5.1 c'est pourquoi je pense qu'il s'agit d'un problème de syntaxe.

Caussenard
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 juin 2008 à 17:32
Salut
En fait, ce n'est pas un problème de VB mais de SQL.
Pour faire deux choses (presque) en même temps, il faut utiliser les transactions :
Je ne suis pas sûr de la syntaxe sous mySQL :
BeginTrans : Début de la transaction
   ici, tu lances les requètes que tu veux éxécuter, l'une derrière l'autre, mais pas dans la même requète
CommitTrans : Exécute les ordres
ou
RollBackTrans : Annule tous les ordres

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 juin 2008 à 20:26
Pour ma part, je dirais qu'il faut indiquer à SQLServer d'executer la première requette avant d'attaquer la seconde :

command = "INSERT INTO `bd_1`.`gamme`(num_phase, description_phase, element, affectation)" & _
        "SELECT num_phase, description_phase, element, affectation FROM `bd_1`.`gamme_std`WHERE num_phase='140';" & _
        "GO;" & "UPDATE `bd_1`.`gamme`SET programme ='TEST', el= 'essais', tr='test' WHERE programme='' AND el='' AND tr=''"

Et voir peut-etre rajouter des sauts de ligne après les ;

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Caussenard Messages postés 28 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 8 juillet 2008 1
16 juin 2008 à 16:40
Effectivement le je pense que c'est la solution "BeginTrans " mais je n'ai pas trouvé la bonne syntaxe, c'est pourquoi je suis quand même repassé à deux requettes séparé (Urgence du projet oblige).
Merci quand même pour vos pistes.

Cordialement
Caussenard
0
Rejoignez-nous