Найти - Пользователи
Полная версия: как повторно вызвать c.execute? (c=db.cursor())
Начало » Базы данных » как повторно вызвать c.execute? (c=db.cursor())
1
qman
всем привет,
есть код
Код:
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')
slivlen
Похоже это косяк в adodbapi.
PooH
а что было сказано в пропущенном unicode? ;)
qman
PooH
а что было сказано в пропущенном unicode? wink
там нечитаемые символы. поэтому пропустил. если сюда добавить, то может помочь решению вопроса?
PooH
qman
там нечитаемые символы. поэтому пропустил. если сюда добавить, то может помочь решению вопроса?
Конечно! Их можно перекодировать и прочитать, там как раз словесное описание ошибки
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