Kann die sqlite3-Parametersubstitution nicht mit PRAGMA verwendet werden?

8

Ich versuche, die user_version einer SQLite-Datenbank über Python 2.6 zu ändern, und ich habe versucht, Folgendes zu tun:

%Vor%

Es schlägt mit dem folgenden Fehler fehl:

%Vor%

Ich habe den benannten Substitutionsstil (anstelle von Fragezeichen) ausprobiert, aber das scheitert auch mit dem gleichen Fehler.

Wenn ich eine Zahl als Teil des SQL-Strings oder mit den String-Operationen von Python hineinlege, funktioniert das alles gut, aber ich würde lieber keines von beiden machen.

Warum funktioniert das nicht?
Und wie kann ich eine Nummer aus einer Variablen in diesen Aufruf einfügen?

    
DMA57361 11.09.2011, 11:49
quelle

1 Antwort

4

Nur bestimmte Werte können parametriert werden. Selbst Tabellen- und Spaltennamen können nicht parametrisiert werden. Dein Experiment zeigt, dass Pragma-Werte auch nicht parametrisiert werden können.

Die user_version wird voraussichtlich eine Ganzzahl sein. Sie können die Formatierung von Zeichenfolgen verwenden und sich gleichzeitig mit

schützen %Vor%

Das Format {v:d} löst einen ValueError aus, wenn version keine Ganzzahl ist.

    
unutbu 11.09.2011, 12:23
quelle

Tags und Links