Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2008 13:08:33

niku
От:
Зарегистрирован: 2008-09-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pymssql

Для обработки данных из Sql Server 2005 использую модуль pymssql последней версии в python2.5

MScon = pymssql.connect(host='192.168.1.1', database='school', user='sa', password='1') # подключаюсь
MScur = MScon.cursor() # объявляю курсор
proc = ‘exec ms_pg_test’
MScur.execute(proc) # выполняю хранимую процедуру которая храниться на сервере
word = MScur.fetchall() # вытягиваю результаты
for i in range(len(word)):
print word # # вывожу на печать

MScon.close()


Проблема в том что модуль pymssql просто урезает каждую строку которую он встречат и считает что она превышает определенную длину. Наткнулся на данную проблему и не знаю как ее обойти или где нужно подкоректировать настройки модуля. Т.е. например ожидаю получить строчку типа:

insert into Users (id, Surname, Name, Email, Kind, Address, WorkPhone, HomePhone, MobilePhone, RegionID, SelectedKind, WhenceID, WhenceCustom, StudyType, IsActive, ob_no, pwd, RegDate, RegCourses, cdkey, IsDeleted, HasForumAccess, SettlementTypeId, SchoolTypeId, SchoolNumber, SchoolName, Grade, SettlementName, CanViewWorkComments, tstamp) values (74130 , ‘Кодикова’ , ‘Елена Сергеевна’ , ‘kodikova’ , 3 , ‘г. Москва’ , ‘' , ’' , ‘' , 1171 , 0 , 73 , ’' , 1 , ‘1’ , 36540 , decode('0100453af263992d3417b1d3da8638cfbe5216f7bb2d30d3d476e35b7f428fa848e7f2d10658f216a52cb0a4eec3','hex') , ‘2003-11-12 16:19:21’ , ‘' , ’' , ‘0’ , ‘1’ , 1 , 1 , ‘' , ’' , ‘' , ’' , ‘0’ , decode('0000000003adfd80','hex') );

а взамен получаю что то типа:

insert into Users (id, Surname, Name, Email, Kind, Address, WorkPhone, HomePhone, MobilePhone, RegionID, SelectedKind, WhenceID, WhenceCustom, StudyType, IsActive, ob_no, pwd, RegDate, RegCourses, cdkey, IsDeleted, HasForumAccess, SettlementTypeId, School

Кто с этим сталкивался?! Посоветуйте плз! А то грустно все как-то получаеться!



Отредактировано (Сен. 9, 2008 13:09:50)

Офлайн

#2 Сен. 9, 2008 15:10:08

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы с pymssql

Как пишут на сайте:
FAQ / Troubleshooting - really useful page

Q: Strings longer than 255 characters get truncated. Why?

A: All strings longer than 255 characters get truncated. It appears that types varchar and nvarchar are affected. You have to cast them to text to get what you expect. This is a gift from Microsoft, an expression of their lack of support for DB-Library. See also this question. For the curious - for strings longer than 255 characters DB-Library function dbdatlen() returns 255, as well as function dbcollen() which holds maximum possible length for the column. dbdata() also returns already truncated string.

Офлайн

#3 Сен. 9, 2008 16:35:21

niku
От:
Зарегистрирован: 2008-09-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pymssql

В самом деле!

Большое спасибо! =)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version