sqlalchemy + mssql + python3 кодировка запроса - PullRequest
0 голосов
/ 19 ноября 2018

Я новичок в sqlalchemy и работаю над небольшим кодом, который получает данные с сервера MS SQL моей компании.

По какой-то причине следующий запрос возвращает None. Хотя тот же оператор запроса отлично работает при вводе в консоли MS SQL (в pycharm / datagrip).

Кажется, проблема вызвана китайскими символами ("南宁 南宁") в предложении where. Я могу выполнять запросы без каких-либо проблем, если в предложении where нет специальных (китайских) символов.

Мне интересно, есть ли способ решить проблему? Ваш вклад будет высоко оценен.

>>from sqlalchemy import create_engine
>>engine = create_engine(****, connect_args={'charset':'GBK'})
>>conn = engine.connect()
>>rsps = conn.execute("SELECT * FROM COMPINTRODUCTION WHERE CITY='南宁市'").fetchone()
>>rsps is None
True

Программная среда:

Client OS: Windows 10
DB Server: Microsoft SQL Server 2008
DB Charset: cp936
sqlalchemy version: 1.2.13
pymssql version: 2.1.4
python version: 3.6 (Anaconda)

1 Ответ

0 голосов
/ 25 ноября 2018

Кажется, проблема вызвана pymssql. Я переключаюсь на odbc, и проблема исчезла.

...