Tupel-Problem

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
pooner
User
Beiträge: 37
Registriert: Montag 15. Mai 2006, 08:04

Donnerstag 29. November 2007, 15:32

Hallo Leute, kleines Problem große Wirkung :-(

Ich will eigentlich nur anhand einer Variablen überprüfen ob eine Datenbank, etc vorhanden ist. Alos baue ich die Verbindung zur DB auf, setze Befehl ab und habe die Liste aller Datenbanken in einem Tupel. mit welchen Tupeloperationen kann ich nun den String vergleichen, ohne umständlich die ganzel Liste (Tupel) zerlegen zu müssen ? Ich find nichts dazu Sorry

Code: Alles auswählen

#
def database(str_name):
#
 print frm_line + " Datenbank-Konfiguration " + frm_line
 try:
   db=MySQLdb.connect(host="localhost",user="root",passwd="Nasenbaer",)
  print "Datenbankverbindung hergestellt ...."
  cursor = db.cursor()
  cursor.execute('show databases')
  results = cursor.fetchall()
   
 #  usw. usw.
Danke für eure Hilfe
BlackJack

Donnerstag 29. November 2007, 15:36

Statt die Tupel in der Liste zu zerlegen kannst Du die gesuchte Zeichenkette in eines verpacken. Ungetestet:

Code: Alles auswählen

if ('datenbankname',) in results:
    pass
pooner
User
Beiträge: 37
Registriert: Montag 15. Mai 2006, 08:04

Donnerstag 29. November 2007, 16:03

Die Idee ist gut, scheint nur nicht zu funktionieren, oder ich hab noch einen Fehler und seh ihn nicht siehe Ausgabe:

Code: Alles auswählen

# Standardprozedur
Bitte den Benutzernamen ein: hwfi06-20
Ist der Benutzername "hwfi06-20" korrekt ?  [n/Y]: y
*********************************** Datenbank-Konfiguration ***********************************
Datenbankverbindung hergestellt ....
(('information_schema',), ('hwfi06-17',), ('hwfi06-18',), ('hwfi06-19',), ('hwfi06-20',), ('mysql',))

Ausgabe Benutzername: ('hwfi06-20',)


und hier der Code:

Code: Alles auswählen


print frm_line + " Datenbank-Konfiguration " + frm_line
 try:
  db=MySQLdb.connect(host="localhost",user="root",passwd="Nasenbaer",)
  print "Datenbankverbindung hergestellt ...."
  cursor = db.cursor()
  cursor.execute('show databases')
  results = cursor.fetchall()
  print results
  print "('"+string.strip(str_name)+"',)"
  if ("('"+string.strip(str_name)+"',)") in results:
   print yes

BlackJack

Donnerstag 29. November 2007, 16:53

Äh, Du sollst die Zeichenkette in ein Tupel stecken und keine Zeichenkette basteln, die wie die Darstellung eines Tupels aussieht.

Die Zeile müsste so aussehen:

Code: Alles auswählen

if (str_name,) in results:
pooner
User
Beiträge: 37
Registriert: Montag 15. Mai 2006, 08:04

Freitag 30. November 2007, 07:21

Sorry und Danke :D
Antworten