mysqltcl - Zugriff auf MySql-Datenbanken |
H |
Wenn Sie Anregungen oder Verbesserungsvorschläge haben oder Fehler gefunden haben, können Sie mir hier eine eMail schicken.
Das Package mysqltcl ermöglicht den Zugriff auf MySql-Datenbanken. Download und Installationmysqltcl ist eine Erweiterung von Tcl/Tk. Deshalb macht das Herunterladen nur Sinn, wenn Sie Tcl/Tk bereits installiert haben. Sie können mysqltcl von der Seite http://www.xdobry.de/mysqltcl/ herunterladen.
Verwendungpackage require mysqltcl 3.01 Das Referenzieren von Packages ist in Package erklärt. Verbindung zum Datenbankserver und zu Datenbankset conn [::mysql::connect ...] Es wird die Verbindung zum Datenbankserver hergestellt. Dieser muss konfiguriert sein und laufen. In conn wird ein Handle zurückgegeben, das für weitere Aufrufe benutzt wird. Es gibt eine Vielzahl von Parametern zu dieser Funktion. ::mysql::close conn Die Verbindung zum Datenbankserver wird geschlossen. ::mysql::use conn Datenbank Öffnen einer bestehenden Datenbank. Beispiel: proc dbConnect {} { global conn if {$conn != ""} { return } if {[catch "set conn [::mysql::connect]" Fehler]} { puts "Keine Verbindung zum Datenbankserver: <$Fehler>" set conn "" return } ::mysql::use $conn Schule puts "Verbindung zu Datenbank Schule eingerichtet." } proc dbDisconnect {} { global conn if {$conn == ""} { return } ::mysql::close $conn set conn "" puts "Verbindung zu Datenbank Schule geschlossen." } SQL-Befehle::mysql::exec conn SQL-Befehl Mit dieser Funktion werden SQL-Befehle ausgeführt, die keine Daten zurückliefern. Beispiel 1: Datenbank anlegen set Kmd {CREATE DATABASE Schule;} ::mysql::exec $conn $Kmd Beispiel 2: Tabelle anlegen set Kmd {\ CREATE TABLE KlasseFach ( \ IdKlasse varchar(15) NOT NULL, \ Fach varchar(15) NOT NULL, \ AnzahlStunden integer \ )} ::mysql::exec $conn $Kmd } set query [::mysql::query conn SQL-Befehl] Mit dieser Funktion werden SQL-Befehle ausgeführt, die Daten zurückliefern. Diese werden mit fetchrow Satz für Satz abgeholt. Mit endquery werden die internen Puffer wieder freigegeben. set Satz [::mysql::fetch query] Mit dieser Funktion wird der nächste Satz einer Datenbankabfrage als Tcl-Liste zurückgegeben. Wenn kein Satz mehr existiert, wird ein Leerstring zurückgegeben. ::mysql::endquery query Mit dieser Funktion wird angezeigt, dass das Ergebnis einer Datenbankabfrage nicht mehr gebraucht wird und die internen Puffer freigegeben werden können. Beispiel 1: Namen der Tabellen einer Datenbank auflisten proc dbShowTables {} { global conn set Liste {} set abfrage [::mysql::query $conn "show tables"] while {[set row [::mysql::fetch $abfrage]] != ""} { append Liste " $row" } ::mysql::endquery $abfrage set Liste [string trim $Liste] puts "Tabellen in Datenbank Schule: $Liste" } Beispiel 2: Direktzugriff auf einen Satz set abfrage [::mysql::query $conn \ "select AnzahlStunden from KlasseFach where IdKlasse=$Klasse and Fach='$Fach';"] set AnzahlStunden [::mysql::fetch $abfrage] if {$AnzahlStunden==""} { puts "Eintrag in Tabelle KlasseFach fehlt für $Klasse und $Fach" set AnzahlStunden 0 } ::mysql::endquery $abfrage Für eine vollständige Liste der Befehle siehe die Literaturangabe. BeispieleRoutinen für den Zugriff auf MySQL finden Sie auch in dem Beispielprogramm zu "GLPK für Tcl/Tk". Literaturmysqltcl Beschreibung |
|
Design by Gottfried Lindner |
zuletzt geändert am 09.04.2005. |