gpt4 book ai didi

Python:Pyodbc 执行带参数的存储过程

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:51 25 4
gpt4 key购买 nike

我在使用 Python 3.4 执行 SQL Server 存储过程时遇到问题。我正在导入 Pyodbc 以创建连接,并有几行应该将数据发送到存储过程。

我的 python :

sql = "exec <stored_procedure_name> @int1=?, @int2=?, @string1=?, @int3=?"
params = (irow[0], irow[15], irow[2], irow[6])
cursor.execute(sql, params)

存储过程:

  @int1 int,
@int2 int,
@string1 varchar(10),
@int3 int
AS
BEGIN
--Do stuff
END

当我执行脚本时,命令提示符中没有出现错误。当我打印

print(sql, params)

我得到一个看起来很奇怪的结果。没有任何内容被插入到存储过程中的目标表中。

exec <stored_procedure_name> @int1=?, @int2=?, @string1=?, @int3=? (0, 0, 'string', 0)

我是 Python 的新手,所以任何见解都将不胜感激。我在 SO 上看到的任何内容都没有帮助。

最佳答案

我认为缺少的是提交。对游标运行提交方法:

cursor.execute(sql, params)
cursor.commit()

或在创建连接时设置 autocommit=True,如提供的其他答案一样。该连接用于创建游标,因此在调用 execute() 时自动提交行为是它固有的:

cnxn = pyodbc.connect(driver="<driver>", server="<server>", 
database="<database>", uid="<username>", pwd="<password>",
autocommit=True)

关于Python:Pyodbc 执行带参数的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34296845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com