python - 使用 sqlalchemy 和 pyodbc 在 MS SQL Server 上获取查询的返回行

标签 python sql-server sqlalchemy pyodbc

我正在尝试从执行行插入中获取返回的行。我直接在 SQL Server 上测试编译后的 sql,查询工作正常,并正确返回一行。

问题是我无法从查询中获取返回的行。这是我的代码,我在 Windows 上使用 pyodbc 驱动程序。

sql = """
    INSERT INTO mytable (id, name)
    OUTPUT Inserted.id, Inserted.name
    VALUES (...)
    """
result = db.execute(sql).fetchall()

这是我遇到的错误:

ERROR:  Failed to save events: (Error) ('HY010', '[HY010] [Microsoft][ODBC SQL Server Driver]Function sequence error (0) (SQLFetch)') None None
Traceback (most recent call last):
  File "...\site-packages\sqlalchemy\engine\result.py", line 782, in fetchall
    l = self.process_rows(self._fetchall_impl())
  File "...\site-packages\sqlalchemy\engine\result.py", line 749, in _fetchall_impl
    return self.cursor.fetchall()
pyodbc.Error: ('HY010', '[HY010] [Microsoft][ODBC SQL Server Driver]Function sequence error (0) (SQLFetch)')

有什么想法吗?提前致谢!

最佳答案

您没有执行查询。您正在写入不应返回结果的数据库。相反,请尝试以下操作:

# assuming db is your cursor
db.execute(sql) # inserts the data
result = db.execute('SELECT * FROM mytable').fetchall()

关于python - 使用 sqlalchemy 和 pyodbc 在 MS SQL Server 上获取查询的返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24633414/

相关文章:

sql-server - Visual Studio 中缺少 SSIS 工具箱

python - "D"消息中的数据不足

stored-procedures - SQLAlchemy 从 postgresql 存储过程获取输出参数

python - 使用 mx :RemoteObject with web2py's @service. amfrpc 装饰器

python - 立即从同步代码执行异步回调

python - 使用Python中的zip函数对2个相关列表进行排序,如何按降序排序?

SQL Server 2012 安装 Reporting Services 目录错误

sql - 子查询中错误命名的字段导致加入

通过 SqlAlchemy 模型类定义中的 @property 的 Python getter 和 setter : HOWTO

Python-解析字典列表的字符串