Найти - Пользователи
Полная версия: Проблемы с pymssql
Начало » Базы данных » Проблемы с pymssql
1
niku
Для обработки данных из 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

Кто с этим сталкивался?! Посоветуйте плз! А то грустно все как-то получаеться!
Ferroman
Как пишут на сайте:
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.
niku
В самом деле!

Большое спасибо! =)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB