由于记录只是SqlAlchemy的一个薄包装,为什么这不起作用?从同一数据库运行同一查询的两种方式都使用完全相同的连接字符串和查询。是什么赋予了?我从print(row)看到的错误抛出sqlalchemy.exc.DBAPIError:(pyodbc.Error)('HY010','[HY010] [Microsoft] [SQL Server的ODBC驱动程序17]功能序列错误(0)(SQLFetch )')
import pyodbc
conn_str = (
r'Driver={ODBC Driver 17 for SQL Server};'
r'Server=server;'
r'Database=database;'
r'Trusted_Connection=yes;'
)
import urllib
from sqlalchemy import create_engine
pp = 'mssql+pyodbc:///?odbc_connect{}'.format(urllib.parse.quote_plus(conn_str))
engine = create_engine(pp)
cnxn = engine.connect()
rows = cnxn.execute('select * from mysmalltable').fetchall()
print(rows)
cnxn.close()
import records
db = records.Database(pp)
rows = db.query('select * from mysmalltable')
for row in rows:
print(row) #throws sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('HY010', '[HY010] [Microsoft][ODBC Driver 17 for SQL Server]Function sequence error (0) (SQLFetch)')
db.close()
答案 0 :(得分:0)
尝试更改:
rows = db.query('select * from mysmalltable')
收件人:
rows = db.query('select * from mysmalltable', fetchall=True)
尽管对于大型记录集来说这不是很实际,但这是我可以使其正常工作的唯一方法(或者我遇到与您相同的错误)。