Уведомления

Группа в Telegram: @pythonsu

#1 Март 20, 2008 08:03:07

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

как повторно вызвать c.execute? (c=db.cursor())

всем привет,
есть код
Код:

db=adodbapi.connect("Driver={SQL Server};Server={host}")
c=db.cursor()
c.execute('use archive')
c.execute('select * from view1')
#тут обработали результат
c.execute('select * from view2')
при вызове
c.execute('select * from view2')
выдает много ошибок…
C:\temp\python>mssql_sp5.py >> \1.log
Traceback (most recent call last):
File “C:\temp\python\mssql_sp5.py”, line 39, in <module>
c.execute('EXEC MAIL_WARNING @Id_Laboratory=3')
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 592, in execut
e
self.executeHelper(operation,0,parameters)
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 552, in execut
eHelper
self._raiseCursorError(DatabaseError,tracebackhistory)
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 407, in _raise
CursorError
eh(self.conn,self,errorclass,errorvalue)
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 38, in standar
dErrorHandler
raise errorclass(errorvalue)
adodbapi.adodbapi.DatabaseError:
———–
Strategy 1: Traceback:Traceback (most recent call last):
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 487, in execu
teHelper
self.cmd.ActiveConnection=self.conn.adoConn
File “C:\Python25\Lib\site-packages\win32com\client\dynamic.py”, line 534, in
__setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
com_error: (-2147352567, ‘тут UNICODE пропущен’, (0, ‘Microsoft OLE DB Pro
vider for ODBC Drivers’, ‘тут UNICODE пропущен’, None, 0, -2147467259), None)


———–
Strategy 2: Traceback:Traceback (most recent call last):
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 487, in execu
teHelper
self.cmd.ActiveConnection=self.conn.adoConn
File “C:\Python25\Lib\site-packages\win32com\client\dynamic.py”, line 534, in
__setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
com_error: (-2147352567, ‘тут UNICODE пропущен’, (0, ‘Microsoft OLE DB Pro
vider for ODBC Drivers’, ‘тут UNICODE пропущен’, None, 0, -2147467259), None)


———–
Strategy 3: Traceback:Traceback (most recent call last):
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 487, in execu
teHelper
self.cmd.ActiveConnection=self.conn.adoConn
File “C:\Python25\Lib\site-packages\win32com\client\dynamic.py”, line 534, in
__setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
com_error: (-2147352567, ‘тут UNICODE пропущен’, None, 0, -2147467259), None)


———–
Strategy 4: Traceback:Traceback (most recent call last):
File “C:\Python25\lib\site-packages\adodbapi\adodbapi.py”, line 487, in execu
teHelper
self.cmd.ActiveConnection=self.conn.adoConn
File “C:\Python25\Lib\site-packages\win32com\client\dynamic.py”, line 534, in
__setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
com_error: (-2147352567, ‘тут UNICODE пропущен’, (0, ‘Microsoft OLE DB Pro
vider for ODBC Drivers’, ‘тут UNICODE пропущен’, None, 0, -2147467259), None)

— ADODBAPI on command:EXEC MAIL_WARNING @Id_Laboratory=3 with parameters: None
наверно при втором использовании c.execute надо что то еще вызвать (или очистить предыдущие результаты)?
Подскажите чего не хватает? Или единственное решение: создать новый экземпляр db.cursor()? типа
Код:
c2=db.cursor()
c2.execute('select * from view2')



Офлайн

#2 Март 20, 2008 15:47:22

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

как повторно вызвать c.execute? (c=db.cursor())

Похоже это косяк в adodbapi.



Офлайн

#3 Март 21, 2008 05:25:36

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

как повторно вызвать c.execute? (c=db.cursor())

а что было сказано в пропущенном unicode? ;)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Апрель 30, 2008 08:36:20

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

как повторно вызвать c.execute? (c=db.cursor())

PooH
а что было сказано в пропущенном unicode? wink
там нечитаемые символы. поэтому пропустил. если сюда добавить, то может помочь решению вопроса?



Офлайн

#5 Апрель 30, 2008 10:17:19

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

как повторно вызвать c.execute? (c=db.cursor())

qman
там нечитаемые символы. поэтому пропустил. если сюда добавить, то может помочь решению вопроса?
Конечно! Их можно перекодировать и прочитать, там как раз словесное описание ошибки



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version