Exécuter un script sql contenu dans un fichier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 607 fois - Téléchargée 29 fois

Contenu du snippet

Bonjour,

Cette première source permet de lire un fichier contenant des instructions SQL, et les renvoie à l'objet oCon, qui est une connexion à une base de données (ADODB.Connection par exemple)

Chaque instruction SQL doit etre terminée par un point-virgule.

Cette fonction m'a servi lors de la migration de bases de données. J'extrai le code SQL (grace à l'interface PhpMyAdmin par exemple) que je récupère dans un fichier. Ensuite, je peux migrer vers n'importe quelle base de données.

Cette source n'est pas tres utile si l'on possède des outils de migration de bases de données.

Source / Exemple :


Public Function FileExecute(ByVal NomFichier As String) As Long

    '   Rémi Fouilloux, 2004 03 ??
    '   Permet d'exécuter le code SQL contenu dans un fichier
    
    'On Error GoTo FileExecute_Err
    Dim strReq As String
    Dim tReq As String
    
    Dim NumFile As Integer
    
    NumFile = FreeFile
    
    If Dir(NomFichier) <> "" Then
        Open NomFichier For Input As #NumFile
            tReq = ""
            strReq = ""
            While Not EOF(NumFile)
                Line Input #NumFile, tReq
                strReq = strReq & tReq
                If InStr(1, strReq, ";") > 0 Then
                    'MsgBox strReq
                    oCon.Execute (strReq)
                    strReq = ""
                End If
            Wend
        Close #1
        FileExecute = Err.Number
    Else
        FileExecute = -1
    End If
    
    Exit Function
    
FileExecute_Err:
     MsgBox Err.Description, vbCritical, "Erreur - " & Err.Number
End Function

Conclusion :


Bon, voici un exemple de création de l'objet oCon, pour se connecter à une base de données MySQL.

Pour info, j'utilise ce script (avec d'autres ...) pour migrer des bases de données Access présentes sur un poste autre que le mien vers deux serveurs MySQL, un sur le réseau local et un hébergé à distance. Et tout marche ;p

Enjoy it !

Option Explicit

Public oCon As ADODB.Connection

Sub main()

Dim strConnect As String

strConnect = "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=localhost;DATABASE=mymeta;PORT=;" & _
"UID=root;PASSWORD=;" & _
"OPTION=3;STMT=;"

Set oCon = New ADODB.Connection
oCon.Open (strConnect)

End Sub

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de medfki

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.