Google

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 Installation

mysqltcl 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.

Haben Sie bereits Erfahrungen mit diesem Paket gemacht? Wir wären Ihnen dankbar, wenn Sie uns diese auf dem Feedback-Formular mitteilen würden.

Verwendung

package require mysqltcl 3.01

Das Referenzieren von Packages ist in Package erklärt.

Verbindung zum Datenbankserver und zu Datenbank

set 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.

Beispiele

Routinen für den Zugriff auf MySQL finden Sie auch in dem Beispielprogramm zu "GLPK für Tcl/Tk".

Literatur

mysqltcl Beschreibung

http://www.xdobry.de/mysqltcl/mysqltcl.html

Bitte beachten Sie auch das Angebot unserer Werbepartner:
Suchen nach:
In Partnerschaft mit Amazon.de
Data Becker Deutschland
eBay Partnerprogramm

Valid XHTML 1.0!

Design by Gottfried Lindner

zuletzt geändert am 09.04.2005.

Besucherzähler