不确定为什么我的存储过程不能在pyodbc和SQL Server之间工作
问题描述:
我对Python(2.7)很新颖,对pyodbc没有太多帮助。我有一个脚本,调用存储过程:不确定为什么我的存储过程不能在pyodbc和SQL Server之间工作
sql = "exec gen_all.dbo.rpt_trinity_total '" + startDate + "', '" + endDate + "'"
print sql
dbCursor.execute(sql)
rows = dbCursor.fetchall()
for row in rows:
print row[0], row[1]
在我返回传入的日期存储过程的结束,只是为了确保SP获取调用在该参数设置得到。一切看起来都应该起作用,但是当我看着应该由SP填充的桌子时,什么都没有。如果我在管理控制台中运行SP,它工作得很好。
我试了一下,发现是解决here,即:
dbCursor.execute("{call gen_all.dbo.rpt_trinity_total(?,?)}", (startDate),(endDate))
,但给了我同样的结果,什么都没有。 SP本身非常简单,使用基于日期传递的SELECT的TRUNCATE和INSERT。
只是想知道是否有人可以对此提供一些见解。谢谢一堆。
答
我怀疑问题是你没有提交连接。 pyodbc
disables auto-commit默认情况下符合Python DB API规范。尝试在您的连接上设置conn.autoCommit = True
或致电conn.commit()
。
+1
就是这样。非常感谢! – spuppett 2013-02-12 14:09:43
刚试过这个SP与插入,只有选择,它返回就好了。 – spuppett 2013-02-12 00:08:54