【发布时间】:2016-04-20 09:56:17
【问题描述】:
我有以下代码:
conn = pymssql.connect(server, user, password, database)
cursor = conn.cursor()
id_new_field = pymssql.output(int)
res = cursor.callproc('NewField', ('Test',id_new_field))
conn.commit()
conn.close()
print(id_new_field.value)
print(res)
不幸的是,尽管存储过程正确执行,但我的输出参数没有填充字段的 id。输出始终为“无”。
我认为问题在于,在我的示例中自动提交设置为 false,对吗?
但我无法将 autocommit 设置为 true,因为存储过程在事务中未执行时会引发错误(它是供应商 SP,我无法更改 SP)。
所以,我现在的解决方法是使用 .execute() 而不是 .callproc() 并将原始 sql 写入我的 python 脚本。太可怕了。 ;)
有没有机会将.callproc() 与 autocommit = false 一起使用?
还是我必须完全不同?
【问题讨论】:
标签: python sql-server stored-procedures pymssql