Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python的PyODBC模块中使用FetchAll?_Python_Sql Server_Ipython_Pypyodbc - Fatal编程技术网

如何在Python的PyODBC模块中使用FetchAll?

如何在Python的PyODBC模块中使用FetchAll?,python,sql-server,ipython,pypyodbc,Python,Sql Server,Ipython,Pypyodbc,我正在尝试使用,特别是对这个。但是,我对创建新表不感兴趣,我只想读取数据(驻留在SQL Server中的数据库/表中)并在Python中使用它 以下代码可以正常工作,但以下部分除外( 用于cur.fetchall()中的行:) 然而,我得到了这个错误 --------------------------------------------------------------------------- Error Traceb

我正在尝试使用,特别是对这个。但是,我对创建新表不感兴趣,我只想读取数据(驻留在SQL Server中的数据库/表中)并在Python中使用它

以下代码可以正常工作,但以下部分除外(
用于cur.fetchall()中的行:

然而,我得到了这个错误

---------------------------------------------------------------------------
Error                                     Traceback (most recent call last)
<ipython-input-70-c08d5a03056a> in <module>()
     14 print('')
     15 
---> 16 for row in cur.fetchall():
     17     for field in row:
     18         print (field, end=" ")

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in fetchall(self)
   1805         rows = []
   1806         while True:
-> 1807             row = self.fetchone()
   1808             if row is None:
   1809                 break

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in fetchone(self)
   1900                 return None
   1901             else:
-> 1902                 check_success(self, ret)
   1903 
   1904     def __next__(self):

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in check_success(ODBC_obj, ret)
    981     if ret not in (SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA):
    982         if isinstance(ODBC_obj, Cursor):
--> 983             ctrl_err(SQL_HANDLE_STMT, ODBC_obj.stmt_h, ret, ODBC_obj.ansi)
    984         elif isinstance(ODBC_obj, Connection):
    985             ctrl_err(SQL_HANDLE_DBC, ODBC_obj.dbc_h, ret, ODBC_obj.ansi)

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in ctrl_err(ht, h, val_ret, ansi)
    959                 raise OperationalError(state,err_text)
    960             elif state[:2] in (raw_s('IM'),raw_s('HY')):
--> 961                 raise Error(state,err_text)
    962             else:
    963                 raise DatabaseError(state,err_text)

Error: (u'HY010', u'[HY010] [Microsoft][ODBC Driver Manager] Function sequence error')
---------------------------------------------------------------------------
错误回溯(最近一次呼叫上次)
在()
14号印刷品(“”)
15
--->16对于cur.fetchall()中的行:
17对于第行中的字段:
18打印(字段,结束=“”)
fetchall(self)中的C:\Users\Administrator\Anaconda\lib\site packages\pyodbc.pyc
1805行=[]
1806虽然正确:
->1807行=self.fetchone()
1808如果行为无:
1809休息
fetchone(self)中的C:\Users\Administrator\Anaconda\lib\site packages\pyodbc.pyc
1900返回无
1901其他:
->1902检查是否成功(自我,ret)
1903
1904定义下一个定义(自我):
C:\Users\Administrator\Anaconda\lib\site packages\pyodbc.pyc in check\u success(ODBC\u obj,ret)
981如果ret不在(SQL\u成功、SQL\u成功与信息、SQL\u否数据):
982如果存在(ODBC_对象,光标):
-->983 ctrl_err(SQL_HANDLE_STMT、ODBC_obj.STMT_h、ret、ODBC_obj.ansi)
984 elif iInstance(ODBC_obj,连接):
985 ctrl_err(SQL_HANDLE_DBC、ODBC_obj.DBC_h、ret、ODBC_obj.ansi)
C:\Users\Administrator\Anaconda\lib\site packages\pypyodbc.pyc在ctrl\u err(ht、h、val\u ret、ansi)中
959错误(状态、错误文本)
960 elif状态[:2]在(原始状态('IM'),原始状态('HY')):
-->961上升错误(状态、错误文本)
962其他:
963 raise数据库错误(状态、错误文本)
错误:(u'HY010',u'[HY010][Microsoft][ODBC驱动程序管理器]函数序列错误')
问题: 最终,我希望能够在Python中研究数据。如何做到这一点


提前感谢。

删除
cur.commit()
行,选择不需要它

我能够用复制错误,因此我假设同样的方法也适用于pyodbc。您应该能够将应用于您的代码,我认为它们比pyodbc当前的产品更完整。

是的,我使用的是python2.7(iPython)。我假设PyODBC是1.3.0版。自从我开了一辆车!pip安装--升级,这是更改日志中的最后一个版本。
---------------------------------------------------------------------------
Error                                     Traceback (most recent call last)
<ipython-input-70-c08d5a03056a> in <module>()
     14 print('')
     15 
---> 16 for row in cur.fetchall():
     17     for field in row:
     18         print (field, end=" ")

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in fetchall(self)
   1805         rows = []
   1806         while True:
-> 1807             row = self.fetchone()
   1808             if row is None:
   1809                 break

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in fetchone(self)
   1900                 return None
   1901             else:
-> 1902                 check_success(self, ret)
   1903 
   1904     def __next__(self):

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in check_success(ODBC_obj, ret)
    981     if ret not in (SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA):
    982         if isinstance(ODBC_obj, Cursor):
--> 983             ctrl_err(SQL_HANDLE_STMT, ODBC_obj.stmt_h, ret, ODBC_obj.ansi)
    984         elif isinstance(ODBC_obj, Connection):
    985             ctrl_err(SQL_HANDLE_DBC, ODBC_obj.dbc_h, ret, ODBC_obj.ansi)

C:\Users\Administrator\Anaconda\lib\site-packages\pypyodbc.pyc in ctrl_err(ht, h, val_ret, ansi)
    959                 raise OperationalError(state,err_text)
    960             elif state[:2] in (raw_s('IM'),raw_s('HY')):
--> 961                 raise Error(state,err_text)
    962             else:
    963                 raise DatabaseError(state,err_text)

Error: (u'HY010', u'[HY010] [Microsoft][ODBC Driver Manager] Function sequence error')