MySQL-Zugriff ohne MyODBC

Für viele Anwender fällt ein ODBC-Zugriff auf eine MySQL-Datenbank flach, weil sie auf ihrem Rechner keine zusätzliche Software wie etwa MyODBC installieren dürfen. Mit einer speziellen MySQL-DLL und einigen Klassen einer Open Source-Bibliothek gelingt dies auch ohne Installation von MyODBC – Sie brauchen nur noch eine einzige DLL in das Verzeichnis zu kopieren, in dem sich auch Ihre Datenbankdatei befindet. Dieser Beitrag zeigt die Möglichkeiten dieser Lösung auf.

Den Großteil der Arbeit der in diesem Beitrag vorgestellten Lösung übernimmt das Projekt vbmysqldirect, das Sie unter http://www.vbmysql.com/projects/vbmysqldirect herunterladen können. Gleich vorneweg der Hinweis, dass die in der hier vorgestellten Lösung verwendeten Klassen der GNU Library General Public License unterliegen. Das bedeutet unter anderem, dass Sie Anwendungen, welche diese frei verfügbaren Klassen nutzen, nicht kommerziell vertreiben dürfen.

Voraussetzungen

Einzige Voraussetzung für den Einsatz der in diesem Beitrag vorgestellten Lösung ist das Vorhandensein der Bibliothek libmysql.dll im Verzeichnis der Datenbankdatei. Diese DLL gelangt üblicherweise mit der Installation von MySQL auf den Rechner, kann aber auch anderweitig bezogen werden – zum Beispiel von dieser Seite: http://www.mysql.com/downloads/connector/c/. Die Beispieldatenbank enthält diese DLL in einem OLE-Feld der Tabelle tblTools, von wo aus sie mit der Prozedur ExportDLL in das aktuelle Datenbankverzeichnis exportiert werden kann. Vom Projekt vbmysqldirect importieren Sie einige Klassen und ein Standardmodul in die Datenbank, von der aus Sie direkt auf eine MySQL-Datenbank zugreifen möchten. In Abb. 1 sehen Sie diese Module. Wenn Sie die Module importiert und die DLL in das Anwendungszeichnis exportiert haben, können Sie loslegen. Wie das geht, zeigt das folgende Beispiel.

pic002.png

Abb. 1: Das Modul modDeclare und die Klassen dieses Projekts enthalten die Methoden für den Zugriff auf MySQL-Datenbanken.

Datenbanken ausgeben

Die Objekte und Methoden von vbmysqldirect lehnen sich stark an das ADO-Objektmodell an. Dennoch liefern sie einige MySQL-spezifische Methoden. Mit der ersten zeigen wir, wie Sie alle Datenbanken eines angegebenen MySQL-Servers anzeigen. Die Prozedur aus Listing 1 wird durch die Schaltfläche cmdDatenbankenAnzeigen des Formulars frmMySQL ausgelöst (s. Abb. 2). Dieses Formular ist an die Tabelle tblConnections gebunden, welche Verbindungsdaten für den Zugriff auf die einzelnen Datenbanken enthält. Dabei deklariert und erstellt sie zunächst ein Objekt namens conn auf Basis der Klasse MYSQL_CONNECTION. Diese wird mit den im aktuellen Datensatz des Formulars gespeicherten Daten geöffnet. Außerdem verwendet die Prozedur ein Objekt des Typs MYSQL_RS, welches dem Recordset-Objekt entspricht.

Listing 1: Zusammenstellen einer Liste aller Datenbanken eines MySQL-Servers

Private Sub cmdDatenbankenAnzeigen_Click()
    Dim conn As MYSQL_CONNECTION
    Dim rst As MYSQL_RS
    Dim strDatenbanken As String
    Set conn = New MYSQL_CONNECTION
    Set rst = New MYSQL_RS
    conn.OpenConnection Me!Server, Me!Benutzername, Me!Kennwort, Me!Datenbank, Me!Port
    Set rst = conn.Show(MY_SHOW_DATABASES)
    Do While Not rst.EOF
        strDatenbanken = strDatenbanken & rst.Fields("Database").Value & ";"
        rst.MoveNext
    Loop
    Me!lstDatenbanken.RowSource = strDatenbanken
End Sub

pic003.png

Abb. 2: Das Formular frmMySQL zeigt einige Datenbank-Informationen an.

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar