Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 9, 2017 13:37:50

Al-se
Зарегистрирован: 2017-01-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон + mssql + кодировка

4kpt_IV
Соболезную. Посоветовать только могу или пошаманить с кодировками или заюзать нормальную базу данных. Если же это уже готовый проект, тогда соболезную вдвойне

Не знаю, что Вы называете “нормальной базой данных” DB2? Oracle? Проект да, давнишний, большой, с базой в десятки Гб и т.п. А моё приложение просто облегчает “девочкам” работу, автоматизирует тупой ручной труд при интеграции двух ИТ-систем. Вернее пытается это сделать.

Офлайн

#2 Фев. 9, 2017 14:07:50

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Питон + mssql + кодировка

Мы везде используем PostgreSQL

Al-se
Проект да, давнишний, большой, с базой в десятки Гб и т.п.

Тогда мучайтесь с кодировками. Посоветовать что-то еще сложно.

Офлайн

#3 Апрель 13, 2017 16:40:04

buzzi
Зарегистрирован: 2015-05-17
Сообщения: 9
Репутация: +  1  -
Профиль   Отправить e-mail  

Питон + mssql + кодировка

Я понимаю, что уже мертв топик, но все же…

 # -*- coding: utf-8 -*-
import pymssql
connector = pymssql.connect(host='127.0.0.1',
                                        user='some_user',
                                        password='some_pass',
                                        database='SomeDB',
                                        charset='cp1251'
                                        )
cursor = connector.cursor()
command = """SELECT * FROM SomeTable
            WITH (NOLOCK)
            WHERE Last_name = '%s' """ % u'ПЕТРОВ'
cursor.execute(command.encode('cp1251'))
operation_list = cursor.fetchall()
print operation_list
connector.close()
На втором питоне отрабатывает наура, естественно при передаче символов кириллицы в запросе, нужно сделать encode('cp1251') строке запроса. Нужно учитывать также какую кодировку использует база данных, в моем случае, чтобы нормально отображались символы русского алфавита в ответе, в connectore указана кодировка charset='cp1251', так как БД использует кодировку cp1251

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version