不确定为什么我的存储过程不能在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。

只是想知道是否有人可以对此提供一些见解。谢谢一堆。

+0

刚试过这个SP与插入,只有选择,它返回就好了。 – spuppett 2013-02-12 00:08:54

我怀疑问题是你没有提交连接。 pyodbcdisables auto-commit默认情况下符合Python DB API规范。尝试在您的连接上设置conn.autoCommit = True或致电conn.commit()

+1

就是这样。非常感谢! – spuppett 2013-02-12 14:09:43