2017-10-03 9 views
0

J'utilise le code psycopg2 pour ouvrir un fichier sql (postgresql), et je passe la valeur pour LIMIT comme paramètre dans mon code. Et ça fonctionne bien. Voici quelques-uns des codes: . .convertir les requêtes paramétrées de psycopg2 en pyodbc

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

. .

mon sample.sql crée une table nommée échantillon et il remplit avec des données d'une autre table nommée test

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

%s prend la valeur lim passé de cur.execute

Ma question est la suivante: comment puis-je traduis cette en pyodbc code pour l'utiliser dans sql server?

+1

Essayez d'utiliser '' au lieu de '% s' pour? le paramètre fictif de paramètre. –

+0

Merci, Gord. ? résolu le problème. –

Répondre

0

psycopg2 et pyodbc implémentent tous deux l'API DB de Python, et cette spécification définit plusieurs parameter styles pouvant être utilisés. Les développeurs de psycopg2 et pyodbc ont simplement choisi des styles différents:

psycopg2 utilise des espaces réservés "format": ... WHERE city = %s

pyodbc utilise des espaces réservés "de qmark": ... WHERE city = ?