Commandes en ADODB

Résolu
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 - 7 févr. 2008 à 14:48
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 7 févr. 2008 à 18:57
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
7 févr. 2008 à 15:06
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
3
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
7 févr. 2008 à 15:08
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...
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
7 févr. 2008 à 15:32
c'est bon ! ca fonctionne !!! :-)

sans ; ni go apparemment !

       Ado_Cmd.CommandText = "SET ROWCOUNT 10000" & vbcrlf & _
                                                   "DELETE FROM T_NOM"
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
7 févr. 2008 à 15:44
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)
0

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

Posez votre question
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
7 févr. 2008 à 15:49
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)
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
7 févr. 2008 à 15:53
Merci beaucoup pour toutes vos réponses !!!
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
7 févr. 2008 à 18:57
Ca sert à rien d'utiliser ADODB.Command !!
On peut faire aussi LaConnexion.Execute(LeSQL_ICI)
_______________________________________________________________________
VB.NETis good ...VB6is better
0
Rejoignez-nous