ADODB : Plusieurs INSERT dans un seul CommandText ?

Bonjour,

Je cherche à pouvoir réaliser une suite de commandes SQL en une seule fois plutôt que de faire un command.Execute à chaque fois qu'il y a de commande SQL à faire.

Ou même : donner un fichier en entrée qui contient une suite de commandes SQL

Par exemple, aujourd'hui, j'ouvre un fichier qui contient un bon paquet d'INSERT, de DELETE, je récupère les requêtes ligne par ligne et pour chaque ligne je fais un cn.execute :

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.ConnectionString = "DSN=XX;UID=XX;PWD=XX;"

Open fichier For Input As #1
While Not EOF(1)
        'récupération de la ligne en cours dans le fichier
        Line Input #1, ligne
        'si la ligne en cours n'est pas un commentaire on l'exécute
        If InStr(1, ligne, "--") <> 1 Then
            cn.Execute Replace(ligne, ";", "")
        End If
    Wend
Close #1

Le code ci-dessus marche bien, mais j'aimerais optimiser en ne faisant qu'un seul cn.Execute comme suivant :

Sub testMultipleInsert()

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

cn.ConnectionString = "DSN=XX;UID=XX;PWD=XXx;"
'Ouverture de la base de données
If cn.State <> adStateOpen Then
    cn.Open
End If

Dim cmd As New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandType = adCmdText
Dim cmdText As String
'cmd.CommandText = "INSERT INTO TabA (Chp1,Chp2,...) VALUES ('Value1','Value2',...);"
cmdText = "INSERT INTO TabA (Chp1,Chp2,...) VALUES ('Value1','Value2',...);"
cmdText = cmdText + "DELETE FROM TableB WHERE ACCT_ID='0164732537';"
cmdText = cmdText + "INSERT INTO TabB (Chp1,Chp2,...) VALUES ('0164732537','Value2',...);"

cmd.CommandText = cmdText

cmd.Execute 'FAILS HERE

If cn.State = adStateOpen Then
    cn.Close
End If

End Sub

En ce faisant, j'ai une erreur au cmd.Execute :

microsoft visual basic

Pouvez-vous m'aider à résoudre ceci ?

A moins que ce n'est pas possible et qu'il faille faire autant d' .Execute qu'il y a d'INSERT / DELETE ?

Pas de possibilité de passer un fichier contenant ces INSERT / DELETE séparés par des ';' ?

Merci beaucoup pour votre aide !!

Any Idea ?

Rechercher des sujets similaires à "adodb insert seul commandtext"