Форум сайта python.su
Проблема такая.
Указанная выше связка работала отлично и была отлажена давно (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)
Офлайн
а из консоли базы запрос “exec test” - выполняется?
(не знаю правда, как там с консолями, но наверняка есть какая-то ;) )
Отредактировано (Дек. 24, 2008 14:15:26)
Офлайн
в MsSQL ? там есть QueryAnalizer
самый простой скрипт, который выдает несколько циферок, работает без проблем.
При запуске скрипта python в дампе freetds полученные результаты совпадают с результатами из MsSQL.
А дальше питон глючит.
Офлайн
судя по трейсу, который ты привел - ошибка возникает при обращении к sybase.
Когда скрипт пытается выполнить к базе sybase запрос “exec test” (без кавычек соотвественно).
Поэтому имеет смысл проверить этот запрос в sybase консоли.
Отредактировано (Дек. 24, 2008 14:26:15)
Офлайн
может я плохо объяснил
на SUSE Linux стоит python
надо обратится к MS SQL SERVER, который установлен на другой машине.
Для этого в Python ставится библиотека sybase (или python-sybase), эта штука настраивается на соединение через freetds.
а freetds по сети конектится к MsSQL.
так вот freetds сам по себе коннектится нормально.
в MsSQL хранимая процедура выполняется без ошибок.
В питоне db.connect тоже выполняется без ошибок.
а дальше скрипт валится.
Офлайн
ок. примерно понятно. А что возвращает эта процедура?
судя по трейсу, какая-то проблема с возвращаемыми значениями.
Офлайн
PN
————
KISS1600
HGA7T
SR216
WRP400
WIP330
WRT54GL
LNE100TX
SPA922
WUSB54GC
Отредактировано (Дек. 24, 2008 14:53:49)
Офлайн
мне кажется, что проблема в модуле sybase.
Офлайн
shizaи я так думаю, но где ? ??
мне кажется, что проблема в модуле sybase.
Офлайн
vimmaxЭто какой тип данных (по базе)?
PN
————
KISS1600
HGA7T
SR216
WRP400
WIP330
WIP330
WMP54G
Офлайн