MySQL-Schnittstelle als .exe Rückgabe v. Connectionobjekt

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Donnerstag 10. August 2006, 12:39

Hallo liebe Entwicklerkollegen!

Ich habe eine kleine SQL-Schnittstelle geschrieben, welche von py2exe als in eine Anwendung SQL.exe compiliert wurde.
Nun kann ich diese Anwendung aus der DOS-Shell auch tatsächlich mit Parametern aufrufen.
Nun zu meinem Problem (Antwort ist glaub ich nicht kompliziert):

Die SQL.exe kann man zum Beispiel so in DOS aufrufen:

Code: Alles auswählen

SQL.exe Login host;port;username;passwort;datenbank;
Im Pythoncode wird eine Verbindung hergestellt:

Code: Alles auswählen

ConnectObj = MySQLdb.Connect(host = host, port = int(port), user = username, passwd = passwort, db = datenbank)
Wie kann ich das Verbindungsobjekt "ConnectObj" zurückgeben bzw. in einer Umgebungsvariablen mit os.getenv[varname] oder os.putenv(varname, ConnectObj) oder ähnlich zwischenspeichern, um die Verbindung
bei zum Beispiel folgendem Aufruf

Code: Alles auswählen

SQL.exe Querie SELECT * FROM TABELLE;
wieder verwenden zu können? Sie soll erhalten bleiben. Das Trennen der Verbindung erfolgt dann später in DOS zum Beispiel über:

Code: Alles auswählen

SQL.exe Logout
Die zweite Frage ist, wie ich generell einen Rückgabewert zurückliefere. Mit

Code: Alles auswählen

sys.argv[]
kann ich Parameter abfragen, welche an die *.exe-Datei übergeben wurden. Gibt es ein Pendant, um Rückgabewerte zu setzen?

Über eine Antwort würde ich mich echt freuen, da ich an dieser Stelle gerade nicht weiter komme und mein Suchen im Forum nicht zum gewünschten Ziel führte :-(

Grüße
Jamil
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Donnerstag 10. August 2006, 13:16

wieso nimmst du denn keine api?
http://www.cs.unm.edu/~dlchao/flake/doom/
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 10. August 2006, 13:25

JR hat geschrieben:Ich habe eine kleine SQL-Schnittstelle geschrieben
Hi Jamil!

Nur, falls du es noch nicht wusstest: Solche Schnittstellen für die Konsolen liefern fast alle Datenbanksysteme bereits "out of the box" mit.

Postgresql: psql
MySQL: mysql
MsSQL: osql
SQLite: sqlite

Diese Tools kannst du an Quallität und Geschwindigkeit nicht übertreffen. Die sind meistens von denen programmiert, die auch das Datenbanksystem programmiert haben.

Was die Wiederverwendung der Connection angeht:
Wird das Programm geschlossen, dann ist damit auch die Verbindung weg. Daran kannst du nichts ändern. Möchtest du also eine Verbindung aufrechterhalten, dann musst du dir ein Serverprogramm schreiben, das ständig läuft und mit dem kleinen Client-Tool gesteuert wird. Allerdings glaube ich nicht, dass sich dieser Aufwand jemals lohnen wird. Sorry!

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Donnerstag 10. August 2006, 13:29

Hi Gerold!

Werde mal by MySQL nach entsprechenden DLL's (?) suchen.
Ansonsten bin ich gerade auf die Befehle pickle, cpickle, dump etc. zum Serialisieren und Deserialisieren gestoßen. Ist das Verbindungsobjekt auf jedem Fall im Nirvana??

Grüße
Jamil
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Donnerstag 10. August 2006, 13:37

Hi!

Muss nochmals fragen. Gibt es quasi über die MySQL-Homepage eine kleine Anwendung, welche man aus DOS heraus verwenden kann, um eine MySQl-Datenbank auf einem anderen Rechner komplett anzusteuern? Wichtig ist, dass ich in irgendeiner Form auch mit den Rückgabewerten arbeiten muss, da ich für unsere Datenbankanwendung auf Arbeit eine Schnittstelle zu MySQL bauen möchte.
Irgendwie finde ich dieses Tool nicht, aber ich suche weiter ...

Grüße
Jamil
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 10. August 2006, 14:16

JR hat geschrieben:kleine Anwendung, welche man aus DOS heraus verwenden kann, um eine MySQl-Datenbank auf einem anderen Rechner komplett anzusteuern?
Hi Jamil!

Wenn du dir MySQL unter Windows installierst, dann hast du das Tool "mysql" http://dev.mysql.com/doc/refman/5.0/en/mysql.html im "bin"-Ordner des MySQL-Programmordners.

Code: Alles auswählen

C:\Programme\MySQL\MySQL Server 5.0\bin>mysql --help
Wenn du nicht die komplette Datenbank auf dem Client-Computer installieren möchtest, dann gibt es noch den Download der "Windows Essentials (x86)" http://mysql.org/downloads/mysql/5.0.html. Wenn du als Setup-Typ "Custom" auswählst, dann kannst du die Installation des Servers deaktivieren und nur die Client-Tools installieren.

Damit kannst du auch auf entfernte Server zugreifen.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Donnerstag 10. August 2006, 14:59

Hi!

Habe mir das Tool mysql.exe jetzt mal installiert und lese die Hilfe dazu durch. Scheinst genau das gemeint zu haben was ich brauche :P

Interessant ist, ob die mysql.exe so schon alleine auf einem Clientrechner lauffähig ist. Denke aber, dass dies nicht so sein wird und einige Bibliotheken aufs System kopiert wurden, welche benötigt werden.

Vielen Dank für den tollen Hinweis Gerold!!

Grüße dich
Jamil
JR
User
Beiträge: 286
Registriert: Montag 20. Februar 2006, 16:43
Wohnort: Berlin

Freitag 11. August 2006, 18:22

Hallo!

Möchte kurz ein Feedback geben.
Die mysql.exe läuft völlig allein ohne zusätzliche Dateien und tut genau das, worum es ging.

Danke nochmals für den Tipp!

Grüße
Jamil
Antworten