2017-10-03 3 views
0

Ich verwende psycopg2 Code, um eine SQL-Datei (postgresql) zu öffnen, und ich übergebe den Wert für LIMIT als Parameter in meinem Code. Und es funktioniert gut. Hier sind einige der Codes: . .konvertieren parametrisierte Abfragen von psycopg2 zu pyodbc

cur.execute(open("sample.sql","r").read(),(lim,)) 

. .

meine sample.sql erstellt eine Tabelle namens Probe und füllt es mit einigen Daten aus einer anderen Tabelle mit dem Namen nimmt test

CREATE TABLE sample(name varchar(500)); 
INSERT INTO sample(name) SELECT name FROM test LIMIT %s; 

%s den Wert lim bestand aus cur.execute

Meine Frage lautet: Wie übersetze ich diese in pyodbc code, um es in sql server zu verwenden?

+1

Versuchen Sie es mit '' statt '% s' für? der Parameter Platzhalter. –

+0

Danke Gord. ? behebt das Problem. –

Antwort

0

psycopg2 und pyodbc implementieren beide die Python-DB-API, und diese Spezifikation definiert mehrere parameter styles, die verwendet werden können. Die Entwickler von psycopg2 und Pyodbc wählte einfach verschiedene Stile:

psycopg2 verwendet "Format" Platzhalter: ... WHERE city = %s

Pyodbc verwendet "Qmark" Platzhalter: ... WHERE city = ?

Verwandte Themen