Commandes en ADODB [Résolu]

Signaler
Messages postés
177
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 avril 2013
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
Bonjour,

je souhaiterais saisir plusieurs commandes sql dans un adodb.command.

Cela est il possible et comment séparer les différentes commandes ?

cet exemple ne fonctionne malheuseument pas :

        Ado_Cmd.ActiveConnection = Ado_Con
        Ado_Cmd.CommandType = adCmdText
        Ado_Cmd.CommandText = "SET ROWCOUNT 10000;" & _
                                                   "GO;" & _
                                                   "DELETE FROM T_NOM"

Merci d'avance pour votre aide !!!

7 réponses

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour

Je l'ignore, mais déjà si tu veux faire en plusieurs lignes :
Ado_Cmd.CommandText = "SET ROWCOUNT 10000;" & vbcrlf &  "GO;" & vbcrlf & "DELETE FROM T_NOM"

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
177
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 avril 2013
1
Merci NHenry !

mais le retour chariot ne change rien au problème !
vb n'accepte quand même pas d'executer ces commandes sql !

snif...
Messages postés
177
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 avril 2013
1
c'est bon ! ca fonctionne !!! :-)

sans ; ni go apparemment !

       Ado_Cmd.CommandText = "SET ROWCOUNT 10000" & vbcrlf & _
                                                   "DELETE FROM T_NOM"
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Le GO n'existe que dans le vrai SQL inventé par Sybase.
Si tu ne passes pas ç la ligne (pas obligatoire), pense aussi à mettre des espaces pour séparer les commandes.
Exemple avec ton dernier copier/coller : Quand on ramène la ligne en une seule (sans le retour à la ligne), on obtient :
   Ado_Cmd.CommandText = "SET ROWCOUNT 100 00DE LETE FROM T_NOM"
Perso, je me suis imposé de toujours mettre un espace à la fin de chaque ligne SQL
Cette syntaxe fonctionnerait aussi :
       Ado_Cmd.CommandText = "SET ROWCOUNT 10000  " & _
                                                   "DELETE FROM T_NOM"

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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
PS : Access, par exemple, n'accepte pas plusieurs requètes par commande.
Il faut donc avoir recours aux Transactions :
   Begin Trans   ' pour commencer
   Ici les requètes SQL les unes derrière les autres
   Commit Trans   ' pour exécuter
   Rolback Trans   ' pour annuler toutes les commandes
Avec une connexion ADODB, utiliser ces commandes sur l'objet de connexion (BeginTrans, CommitTrans, RollbackTrans)
Messages postés
177
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 avril 2013
1
Merci beaucoup pour toutes vos réponses !!!
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Ca sert à rien d'utiliser ADODB.Command !!
On peut faire aussi LaConnexion.Execute(LeSQL_ICI)
_______________________________________________________________________
VB.NETis good ...VB6is better