Je rencontre des problèmes d'envoi unicode à SQL Server via pymssql:Impossible d'envoyer Unicode à SQL Server à l'aide pymssql
In [1]: import pymssql
conn = pymssql.connect(host='hostname', user='me', password='password', database='db')
cursor = conn.cursor()
In [2]: s = u'Monsieur le Curé of the «Notre-Dame-de-Grâce» neighborhood'
In [3]: s
Out [3]: u'Monsieur le Cur\xe9 of the \xabNotre-Dame-de-Gr\xe2ce\xbb neighborhood'
In [4]: cursor.execute("INSERT INTO MyTable VALUES(%s)", s.encode('utf-8'))
cursor.execute("INSERT INTO MyTable VALUES(" + s.encode('utf-8') + "')")
conn.commit()
Les deux déclarations exécutent donnent le même texte tronqué sur le côté SQL Server:
'Monsieur le Curé of the «Notre-Dame-de-Grâce» neighborhood'
Peut-être que quelque chose ne va pas avec la façon dont je suis en train de coder, ou avec ma syntaxe. Quelqu'un a suggéré une procédure stockée, mais j'espère ne pas avoir à suivre cette route.
This semble être un problème très similaire, sans réelle réponse.
Implicite dans le [bon conseil de connexion] (http://stackoverflow.com/a/16025030/1599229) mentionné ci-dessus est une idée que je n'a pas essayé: prenez les exemples unicode de pypyodbc (si vous devez) et essayez pyodbc (si ce n'est pas le cas). – bahmait