从pyodbc调用过程时出错

前端之家收集整理的这篇文章主要介绍了从pyodbc调用过程时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是我的第一个问题.所以,如果重复或格式化已关闭,我很抱歉.我搜索了其他问题,但错误很常见,但出现在多种情况中.

我有一个非常简单的python代码,我想在pyodbc中执行MSsql中的过程.

import pyodbc
conn = pyodbc.connect(r'DSN=myDSN')
cursor = conn.cursor()
query = r'{call myproc}'
cursor.execute(query)

我在读取ODBC使用调用来执行MSsql中的过程后,使用调用而不是exec.

我得到的错误如下:

Traceback (most recent call last):
File "myscript.py",line 26,in sql Server Native Client 11.0][sql Server]The current transaction has aborted,and any pending changes have been rolled back. Cause: A transaction in a rollback-only state was not explicitly rolled back before a DDL,DML or SELECT statement.  (111233) (sqlExecDirectW)')

谢谢您的帮助

最佳答案
万一有人遇到同样的问题.我能够找出问题所在.当您使用DSN打开连接时,自动提交设置为False.出于某种原因,这应该是True才能使代码工作(这在很大程度上取决于我在MSsql上做了什么).

import pyodbc
conn = pyodbc.connect(r'DSN=myDSN',autocommit=True)
cursor = conn.cursor()
query = r'{call myproc}'
cursor.execute(query)

这运行得很好!

原文链接:https://www.f2er.com/python/438548.html

猜你在找的Python相关文章