Pfad zur Datenbank-Error

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
DMD-OL
User
Beiträge: 145
Registriert: Samstag 26. Dezember 2015, 16:21
Wohnort: Oldenburg (Oldenburg)

Pfad zur Datenbank-Error

Beitragvon DMD-OL » Donnerstag 15. Juni 2017, 17:50

hi
Ich speichere in den Ordner:

"C:\Users\DMD-OL\Desktop\SYSTEM\Getränke\Wein\QR_Codes.db"

eine Datenbank QR_Codes.db, auf dem der Zugriff funktioniert, solange ich keine Umlaute verwende.

Wenn ich das mache, gibt es einen 'OperationalError: unable to open database file'.
Die Pfad zur Datenbank wird korrekt ausgelen:

"C:\Users\DMD-OL\Desktop\SYSTEM\Getränke\Wein\QR_Codes.db".

Zum Auslesen hier mein Code:
  1. desktopFile = os.path.expanduser("~\Desktop")
  2. path_grund = desktopFile+'\\Material- & Zeiterfassung\\SYSTEM\\Materialerstellung'
  3. path_speicher = desktopFile+'\\Material- & Zeiterfassung\\Materiallisten'
  4. folderpath = path_grund+'\\QR-Codes'
  5.  
  6. solo_List = []
  7. for i in os.listdir(folderpath):
  8.     if i not in solo_List:
  9.         solo_List.append(i)
  10.  
  11. for mat_Namenser in solo_List:
  12.     path_qr = path_grund+'\\QR-Datenbank'+"\\"+mat_Namenser+"\\Cola"
  13.     SQL_QR = '%s\\QR_Codes.db'  %(path_qr)
  14.  
  15.     print SQL_QR
  16.  
  17.     conn = sqlite3.connect(SQL_QR)
  18.     cursor = conn.cursor()
  19.     conn.execute('''CREATE TABLE IF NOT EXISTS QR_Codes(ID INTEGER PRIMARY KEY AUTOINCREMENT, QR_LISTE TEXT, PICTURE BLOB,TYPE TEXT,FILE_NAME TEXT,QR_TEXT TEXT);''')
  20.     cursor = conn.cursor()
  21.     cursor.execute('''SELECT QR_LISTE, PICTURE, TYPE, FILE_NAME, QR_TEXT FROM QR_Codes WHERE QR_LISTE = ?''', (mat_Namenser,))
  22.     result = cursor.fetchall()
  23.     print result
  24.     conn.close()

Ich bekomme es nicht hin, da ja eigentlich alles richtig ist?
Zuletzt geändert von Anonymous am Donnerstag 15. Juni 2017, 17:57, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Sirius3
User
Beiträge: 6357
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Pfad zur Datenbank-Error

Beitragvon Sirius3 » Donnerstag 15. Juni 2017, 18:37

@DMD-OL: Pfade setzt man mit os.path.join zusammen und nicht mit +. Es wäre sehr ungewöhnlich, wenn listdir mehrfach Dateien mit dem selben Namen zurückliefert. Die Variablennamen sind eine wilde Mischung aus verschiedenen Sprachen und Abkürzungen. Die Namen sollten klar sagen, für was sie da sind.

  1. DESKTOP_PATH = os.path.expanduser("~/Desktop/Material- & Zeiterfassung")
  2. SYSTEM_PATH = os.path.join(DESKTOP_PATH, "SYSTEM", "Materialerstellung")
  3. LISTS_PATH = os.path.join(DESKTOP_PATH, "Materiallisten")
  4. FOLDER_PATH = os.path.join(SYSTEM_PATH, "QR-Codes")
  5.  
  6. for materials in os.listdir(FOLDER_PATH):
  7.     database_name = os.path.join(SYSTEM_PATH, "QR-Datenbank", materials, "Cola", "QR_Codes.db")
  8.     print database_name
DMD-OL
User
Beiträge: 145
Registriert: Samstag 26. Dezember 2015, 16:21
Wohnort: Oldenburg (Oldenburg)

Re: Pfad zur Datenbank-Error

Beitragvon DMD-OL » Samstag 17. Juni 2017, 15:51

DANKE, jetzt läufts :)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder