Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 24, 2008 13:19:34

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

Python -> Sybase ->freetds ->MSSQL

Проблема такая.
Указанная выше связка работала отлично и была отлажена давно (Suse -> Python -> Sybase -> freetds ->MSSQL)
Теперь приходится переезжать на новый сервер. Все установил а скрипты перестали работать !!!!

Я установил freetds, настройки со старого сервера перенес,
подключение через
tsql -H DONETSK -p 1435 -U www -P %6GTHy
работает отлично.

теперь когда запускаю скрипт Python (который работал на старом сервере!) возникает ошибка:
Traceback (most recent call last):
File “/home/velichko/pyt_old_bin/test”, line 15, in <module>
sql = db.execute('exec test')
File “/usr/lib/python2.5/site-packages/Sybase.py”, line 1034, in execute
cursor.execute(sql)
File “/usr/lib/python2.5/site-packages/Sybase.py”, line 546, in execute
self._start()
File “/usr/lib/python2.5/site-packages/Sybase.py”, line 695, in _start
return self._mainloop()
File “/usr/lib/python2.5/site-packages/Sybase.py”, line 728, in _mainloop
self._row_result()
File “/usr/lib/python2.5/site-packages/Sybase.py”, line 767, in _row_result
count = self._fetch_rows(self._bufs, logical_result)
File “/usr/lib/python2.5/site-packages/Sybase.py”, line 681, in _fetch_rows
rows.append(_extract_row(bufs, 0, self.outputmap))
File “/usr/lib/python2.5/site-packages/Sybase.py”, line 289, in _extract_row
row = _column_value(buf, buf.datatype, outputmap)
TypeError: unknown data format
Exception exceptions.TypeError: ‘numeric to string conversion failed’ in <bound method Cursor.__del__ of <Sybase.Cursor instance at 0xb7b9422c>> ignored

И ничего не могу сделать, уже переинсталил, и разные версии пробовал.
в дампе freetds все отлично: регистрация пошла, регистрация успешна, запрос пошел, результаты (правильные) вернулись.
а скрипт лежит :(
NEED HELP!



Отредактировано (Дек. 24, 2008 14:12:32)

Офлайн

#2 Дек. 24, 2008 14:14:52

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

Python -> Sybase ->freetds ->MSSQL

а из консоли базы запрос “exec test” - выполняется?
(не знаю правда, как там с консолями, но наверняка есть какая-то ;) )



Отредактировано (Дек. 24, 2008 14:15:26)

Офлайн

#3 Дек. 24, 2008 14:20:58

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

Python -> Sybase ->freetds ->MSSQL

в MsSQL ? там есть QueryAnalizer
самый простой скрипт, который выдает несколько циферок, работает без проблем.
При запуске скрипта python в дампе freetds полученные результаты совпадают с результатами из MsSQL.
А дальше питон глючит.



Офлайн

#4 Дек. 24, 2008 14:25:55

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

Python -> Sybase ->freetds ->MSSQL

судя по трейсу, который ты привел - ошибка возникает при обращении к sybase.
Когда скрипт пытается выполнить к базе sybase запрос “exec test” (без кавычек соотвественно).
Поэтому имеет смысл проверить этот запрос в sybase консоли.



Отредактировано (Дек. 24, 2008 14:26:15)

Офлайн

#5 Дек. 24, 2008 14:32:30

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

Python -> Sybase ->freetds ->MSSQL

может я плохо объяснил
на SUSE Linux стоит python
надо обратится к MS SQL SERVER, который установлен на другой машине.
Для этого в Python ставится библиотека sybase (или python-sybase), эта штука настраивается на соединение через freetds.
а freetds по сети конектится к MsSQL.
так вот freetds сам по себе коннектится нормально.

в MsSQL хранимая процедура выполняется без ошибок.

В питоне db.connect тоже выполняется без ошибок.
а дальше скрипт валится.



Офлайн

#6 Дек. 24, 2008 14:47:04

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

Python -> Sybase ->freetds ->MSSQL

ок. примерно понятно. А что возвращает эта процедура?
судя по трейсу, какая-то проблема с возвращаемыми значениями.



Офлайн

#7 Дек. 24, 2008 14:53:28

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

Python -> Sybase ->freetds ->MSSQL

PN
————
KISS1600
HGA7T
SR216
WRP400
WIP330
WRT54GL
LNE100TX
SPA922
WUSB54GC



Отредактировано (Дек. 24, 2008 14:53:49)

Офлайн

#8 Дек. 24, 2008 14:53:31

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

Python -> Sybase ->freetds ->MSSQL

мне кажется, что проблема в модуле sybase.



Офлайн

#9 Дек. 24, 2008 14:54:40

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

Python -> Sybase ->freetds ->MSSQL

shiza
мне кажется, что проблема в модуле sybase.
и я так думаю, но где ? ??



Офлайн

#10 Дек. 24, 2008 14:54:47

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

Python -> Sybase ->freetds ->MSSQL

vimmax
PN
————
KISS1600
HGA7T
SR216
WRP400
WIP330
WIP330
WMP54G
Это какой тип данных (по базе)?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version