Advanced Services | Verbindung über die ODBC-Schnittstelle |
ODBC (open database connectivity) ist eine standardisierte Schnittstelle, die ein Betriebssystem zum Zugriff auf Datenbanken bereitstellen kann. Von ODBC aus betrachtet schauen dann alle Datenbanken (ziemlich) gleich aus. Für den Zugriff über ODBC muß eine Datenbank einen ODBC-Treiber anbieten und dieser Treiber muß beim Betriebssystem registriert werden. ODBC hat also zunächst noch nichts mit Java zu tun. Da die ODBC-Treiber von der jeweiligen Datenbankfirma zur Verfügung gestellt werden und es keine Verpflichtung gibt, welche Features ein ODBC-Treiber im einzelnen unterstützen soll, ist etwa Oracle-ODBC nicht gleich MS-Access-ODBC.
MySQL ist für den privaten Gebrauch kostenlos. Die Datenbank selbst erhält man unter der Adresse
http://www.mysql.com/downloads
Hier wählt man links den Punkt "MySQL Community Server" aus und sucht sich die aktuelle Version aus.
Die Installation ist mittlerweile problemlos.
Den MySQL-ODBC-Treiber findet man wie oben unter
http://www.mysql.com/downloads
Jetzt wählt man links den Punkt "Connectors" aus und dann "Connector/ODBC". Sodann sucht man sich
die neueste Version heraus und lädt diese herunter. Beim Schreiben dieser Anleitung ist dies die
Version mit der Nummer "5.2.4".
In Windows XP geht man über Start, Einstellungen zum Fenster "Systemsteuerung" und wählt dann "Verwaltung"
und weiter "Datenquellen(ODBC)". Hier wählt man dann die Karteikarte System-DNS.
Hier wählt man Hinzufügen und sucht im neuen Dialog nach dem MySQL-Treiber.
Der Button "Fertig stellen" führt auf einen weiteren Dialog. Hier trägt man die Daten ein.
Mit dem Test-Button kann man feststellen, ob man die richtigen Angaben gemacht hat.
Nun sieht man den neuen Eintrag im Ausgangsdialog
Das folgende Programm demonstriert einen Zugriff auf eine Tabelle "myTable" im Katalog "test".
using System; using System.Text; using System.Data.Odbc; using System.Collections.Generic; namespace connect_via_odbc { class Program { static void Main(string[] args) { try { string connectString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=test;" + "UID=myUserID;" + "PASSWORD=myPassWord;" ; OdbcConnection conn = new OdbcConnection(connectString); conn.Open(); Console.WriteLine("connection established"); OdbcCommand sql = conn.CreateCommand(); sql.CommandText = "SELECT * FROM namen"; OdbcDataReader reader = sql.ExecuteReader(); Console.WriteLine("reading data from table namen"); while (reader.Read()) { string row = ""; for (int i = 0; i < reader.FieldCount; i++) row += reader.GetValue(i).ToString() + " "; Console.WriteLine(row); } conn.Close(); Console.WriteLine("connection closed"); } catch (OdbcException ex) { Console.WriteLine(ex.ToString()); } } } }