manchmal liegts auch an kleinigkeiten:
db = sqlite3.connect('C:\Users\DMD-OL\Desktop\\datum=?\\adressenliste.db', (datum))
weiß jemand, wie die korrekte syntax ist?
sqlite3.connect(…) mit Platzhalterübergabe
@DMD: Das hat weder mit der `connect()`-Funktion noch mit `sqlite` etwas zu tun. Du musst halt einfach wie bei anderen Zeichenketten auch einen Wert dort hineinformatieren, zum Beispiel mit der `format()`-Methode auf Zeichenketten.
Dies ist keine Abfrage, bei der Du Abfragetext und Parameter trennen kannst und sollst. Die connect-Methode von sqlite3 erwartet den Namen der Datenbankdatei als String. Also hier ganz normal mit Stringformatierung arbeiten:DMD hat geschrieben:manchmal liegts auch an kleinigkeiten:
db = sqlite3.connect('C:\Users\DMD-OL\Desktop\\datum=?\\adressenliste.db', (datum))
weiß jemand, wie die korrekte syntax ist?
db = sqlite3.connect(r'C:\Users\DMD-OL\Desktop\datum={0}\adressenliste.db'.format(datum))
Und wenn "datum" tatsächlich ein Datum ist, dann natürlich mit dem Datumsformat aufpassen. Und noch was: in Deinem Beitrag hast Du mal einfache, mal doppelte Backslashes stehen, das ist so natürlich falsch. Ich habe einen "raw string" daraus gemacht und die Doppel-Backslashes entfernt, das sollte stimmen. Aber vielleicht waren das ja auch nur Tippfehler im Beitrag.
das hier funktioniert:
import time
import sqlite3
datum = time.strftime("%d.%m.%Y")
SQL_str='C:\Users\DMD-OL\Desktop\Verwaltung Arbeitszeit\\%s\\adressenliste.db' % (datum)
conn = sqlite3.connect(SQL_str)
....
sorry, hätte besser alles posten sollen!
import time
import sqlite3
datum = time.strftime("%d.%m.%Y")
SQL_str='C:\Users\DMD-OL\Desktop\Verwaltung Arbeitszeit\\%s\\adressenliste.db' % (datum)
conn = sqlite3.connect(SQL_str)
....
sorry, hätte besser alles posten sollen!
Das sieht aber nicht wirklich gut aus, da du die Backslashes nicht konsequent einsetzt. Entweder verdoppelst du alle Backslashes wie in 'C:\\Users\\DMD-OL\\Desktop\\Verwaltung Arbeitszeit\\%s\\adressenliste.db' oder du setzt gleich einen Raw-String ein: r'C:\Users\DMD-OL\Desktop\Verwaltung Arbeitszeit\%s\adressenliste.db'DMD hat geschrieben:das hier funktioniert:
[...]
Code: Alles auswählen
>>> 'C:\Users\DMD-OL\Desktop\Verwaltung Arbeitszeit\\%s\\adressenliste.db'
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Ergänzend: Rein logisch ist mir unklar, warum für jeden Tag eine eigene Datenbank angelegt wird, statt das Tagesdatum in den entsprechenden Tabellen als Spalte mitzuführen.
das mit der syntax hab ich übersehn.
ich bin erst vor 3 monaten angefangen und noch so "jo, geil... FUNKTIONIERT..."-drauf.
ich arbeite jeden tag ein bisschen daran, profi zu werden.
deswegen bin ich ganz dankbar für deine kritik!
ich bin erst vor 3 monaten angefangen und noch so "jo, geil... FUNKTIONIERT..."-drauf.
ich arbeite jeden tag ein bisschen daran, profi zu werden.
deswegen bin ich ganz dankbar für deine kritik!