Seite 1 von 1

Acces DB

Verfasst: Montag 25. Mai 2020, 13:36
von Gerhardus
Hallo,
vielleicht kann mir jemand diese Frage beantworten:
In einem langen sql abfragestring möchte ich in einer Havingklausel 2 unterschiedliche Parameter mit AND verknüpft sind eingeben.
Mit einem parameter funktioniert das problemlos, aber mit 2?
p1=10
p2="B"
z.B.: HAVING ((ID>?) AND (Mitg=?) )\

cursor.execute(sql,p1,p2) ? (funktioniert nicht)
oder ist das nicht möglich?
Bitte um Antwort, danke

Re: Acces DB

Verfasst: Montag 25. Mai 2020, 13:38
von __deets__
Das geht, du musst die Parameter als Sequenz angeben:

Code: Alles auswählen

cursor.execute(sql, (p1,p2))
Und in Zukunft statt proaischem "funktioniert nicht" die garantiert aufgetretene, konkrete Fehlermeldung posten.

Re: Acces DB

Verfasst: Montag 25. Mai 2020, 14:00
von Gerhardus
Super,Danke!!!

Re: Acces DB

Verfasst: Montag 25. Mai 2020, 14:05
von Jankie
Wichtig ist dabei auch noch, dass wenn du nur einen Wert übergeben willst, musst du als Paramter für execute trotzdem ein Tupel verwenden. Also

Code: Alles auswählen

cursor.execute(sql, (p1,))

Re: Acces DB

Verfasst: Freitag 29. Mai 2020, 14:42
von Gerhardus
Danke, bei einem parameter habe ich die Varaible zu einer Llist gemeacht. Ist natürlich im execute befehl viel besser.