4

我对 Python (2.7) 很陌生,对 pyodbc 帮助不大。我有一个调用存储过程的脚本:

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,它就可以正常工作。

我尝试了这里发现的解决方案,即:

dbCursor.execute("{call gen_all.dbo.rpt_trinity_total(?,?)}", (startDate),(endDate))

但给了我同样的结果,什么都没有。SP 本身非常简单,TRUNCATE 和 INSERT,使用 SELECT,基于传递的日期。

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

4

1 回答 1

15

我怀疑问题是您没有提交连接。pyodbc 默认情况下禁用自动提交以满足 Python DB API 规范。尝试设置conn.autoCommit = True或呼叫conn.commit()您的连接。

于 2013-02-12T05:33:09.413 回答