Найти - Пользователи
Полная версия: Python -> Sybase ->freetds ->MSSQL
Начало » Базы данных » Python -> Sybase ->freetds ->MSSQL
1 2
vimmax
Проблема такая.
Указанная выше связка работала отлично и была отлажена давно (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!
shiza
а из консоли базы запрос “exec test” - выполняется?
(не знаю правда, как там с консолями, но наверняка есть какая-то ;) )
vimmax
в MsSQL ? там есть QueryAnalizer
самый простой скрипт, который выдает несколько циферок, работает без проблем.
При запуске скрипта python в дампе freetds полученные результаты совпадают с результатами из MsSQL.
А дальше питон глючит.
shiza
судя по трейсу, который ты привел - ошибка возникает при обращении к sybase.
Когда скрипт пытается выполнить к базе sybase запрос “exec test” (без кавычек соотвественно).
Поэтому имеет смысл проверить этот запрос в sybase консоли.
vimmax
может я плохо объяснил
на SUSE Linux стоит python
надо обратится к MS SQL SERVER, который установлен на другой машине.
Для этого в Python ставится библиотека sybase (или python-sybase), эта штука настраивается на соединение через freetds.
а freetds по сети конектится к MsSQL.
так вот freetds сам по себе коннектится нормально.

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

В питоне db.connect тоже выполняется без ошибок.
а дальше скрипт валится.
shiza
ок. примерно понятно. А что возвращает эта процедура?
судя по трейсу, какая-то проблема с возвращаемыми значениями.
vimmax
PN
————
KISS1600
HGA7T
SR216
WRP400
WIP330
WRT54GL
LNE100TX
SPA922
WUSB54GC
shiza
мне кажется, что проблема в модуле sybase.
vimmax
shiza
мне кажется, что проблема в модуле sybase.
и я так думаю, но где ? ??
shiza
vimmax
PN
————
KISS1600
HGA7T
SR216
WRP400
WIP330
WIP330
WMP54G
Это какой тип данных (по базе)?
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