2011-01-25 2 views
0

Приветапитона к MSSQL кодирующей проблему

Используя pymssql библиотеку, я хочу, чтобы записать данные в базу данных MSSQL однако встретить при кодирующих проблемах. Вот мой пример кода для записи в БД:

# -*- coding: utf-8 -*- 
import _mssql 

.... 
Connection info data here 
.... 


def mssql_connect(): 
    return _mssql.connect(server=HOST, user=USERNAME, password=PASS, database=DB, charset="utf-8") 

con = mssql_connect() 
INSERT_EX_SQL = "INSERT INTO myDatabsae (Id, ProgramName, ProgramDetail) VALUES (1, 'Test Characters ÜŞiçÇÖö', 'löşüIIğĞü');" 
con.execute_non_query(INSERT_EX_SQL) 
con.close() 

К сожалению, данные, которые были записаны в БД поврежден:

enter image description here

Collacation моего MSSQL БД: Turkish_CI_AS Как это нужно решить?

+0

Указывает строку явно как помощь в unicode? например 'INSERT_EX_SQL = u" INSERT INTO myDatabsae (Id, ProgramName, ProgramDetail) VALUES (1, 'Test Characters ÜŞiçÇÖö', 'löşüIIğĞü'); '' – Kimvais

+0

Если я unicode запрос, я получаю такую ​​ошибку: UnicodeEncodeError: 'ascii' codec не может кодировать символы в позиции 84-85: порядковый номер не в диапазоне (128) – Hellnar

ответ

1

Here is a possible solution:

Ключ INSERT_EX_SQ.encode('your language encoder'). Попробуйте это вместо:

con.execute_non_query(INSERT_EX_SQ.encode('your language encoder')) 
+0

работал для меня :) – Aki

Смежные вопросы