Уведомления

Группа в Telegram: @pythonsu

#1 Июль 2, 2007 13:11:32

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

всем привет.
пишу первую прогу. Нужно получить доступ к серверу баз данных MS SQL. Написал такой код
# -*- coding: cp1251 -*-
import os, sys, locale, adodbapi, codecs
db=adodbapi.connect(“Driver={SQL Server};Server=127.0.0.1;Database=cakephp;Uid=kkk;Pwd=1;”)
c=db.cursor()
c.execute('use cakephp')
c.execute('select last_name from users ')
t= c.fetchone()
x = str(t)
print t
unicodestring = unicode(x, “cp1251”)
print x
db.close()

проблема в том что
print x
print t
выводят номера символов в юникод, а как вывести читаемые символы.???
В базе данных есть символы кириллицы, именно с такими символами возникают проблемы.

Python 2.5.1 ОС Windows XP.


P.S. убил 3 дня. что делать дальше не знаю.



Офлайн

#2 Июль 2, 2007 13:49:40

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

Офлайн

#3 Июль 2, 2007 16:52:32

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

спасибо



Офлайн

#4 Июль 2, 2007 17:20:04

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

+ у тебя проблема в том что c.fetchone() возвращает кортеж, а тебе нужна строка => нужно
t= c.fetchone()

PS для работы с MS SQL есть для питона пакет pymssql



Отредактировано (Июль 2, 2007 17:20:36)

Офлайн

#5 Июль 3, 2007 05:14:17

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

Я нашел такое решение
c.execute('select last_name from users ')
t= c.fetchone()
print “%s”%(t)

какое правильнее решение?
ваше или мое?
почему?



Офлайн

#6 Июль 3, 2007 06:41:06

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

аналогичная операция
>>> t=('name1') # заменяет t = c.fetchone()
>>> “%s”%(t)
'name1'
>>>

qman, если у тебя нужно работать с небольшими данными (по МБ и по количеству записей), то можешь посмотретьв сторону sqlobject и sqlalchemy



Офлайн

#7 Июль 3, 2007 07:59:24

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

pythonwin
тут что то я не понимаю последний пример,
итак есть код
t = ('name1')
“%s”%(t)
Если я правильно понял этот код должен вывести
'name1'
???
А разве print не нужен? Мне кажется правильнее
print “%s”%(t)



Отредактировано (Июль 3, 2007 08:29:23)

Офлайн

#8 Июль 3, 2007 08:35:09

guest01
От:
Зарегистрирован: 2007-03-24
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

как настроить отображение символов кирилицы из SQL запросов к MS SQL

qman
А разве print не нужен? Мне кажется правильнее
print “%s”%(t)
Ну ты чего? Он же через интерпритатор запускает (в интерактивном режиме), а там print можно опускать. Об этом режиме свидетельствуют три угловых скобки “>>>” перед каждой командой. Так что не обращай на это внимание и всегда пиши интсрукцию print.



Отредактировано (Июль 3, 2007 08:37:24)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version