我們正在運行 - 紅帽企業Linux服務器版本7.2(Maipo),Teradata rpms: - tdodbc1510-15.10.01.05-1.noarch - TeraGSS_linux_x64-15.10.04.02-1。 noarch - tdicu1510-15.10.01.02-1.noarchpyodbc遊標從teradata返回0行
並經由pyodbc(3.0.10)與Python 3.6連接,像這樣:
>>> import pyodbc >>> conn = pyodbc.connect('DSN=devdb;UID=xxx;PWD=xxx') >>> curs = conn.execute('\nselect user as me') >>> len(curs.fetchall()) Traceback (most recent call last): File "<stdin>", line 1, in <module> pyodbc.ProgrammingError: No results. Previous SQL was not a query.
另外,ODBC跟蹤文件表示成功執行但SQLROWCOUNT = 0 :
2759 1 TS:201920:[139723593647936] SQLExecDirect returns SQL_SUCCESS [ execute.cpp 542 ] 2760 TS:201920:[139723593647936] SQLRowCount(hstmt5, pcrow) --> [ results.cpp 3165 ] 2761 1 TS:201920:[139723593647936] SQLRowCount() = 0 [ results.cpp 3212 ] 2762 TS:201920:[139723593647936] SQLNumResultCols(hstmt5, pccol) [ results.cpp 210 ] 2763 1 TS:201920:[139723593647936] SQLNumResultCols() [ results.cpp 224 ] 2764 1 TS:201920:[139723593647936] --> 0 [ results.cpp 248 ] 2765 1 TS:201920:[139723593647936] SQLNumResultCols returns SQL_SUCCESS [ results.cpp 251 ]
實際上,遊標不會在有效的查詢中返回結果。 任何人都可以對此有所瞭解嗎?
如果在嘗試執行'.fetchall()'之前執行'curs.nextset()',會發生什麼? –