我有一个名为Points
的简单表,有两列QuestionID
和UserID
:
QuestionID UserID
-------------------
5 2
6 1
我编写了一个存储过程来将数据插入此表:
CREATE PROCEDURE [dbo].[SetPoints]
@QuestionID INT,
@UserID INT
AS
INSERT INTO dbo.Points (QuestionID, UserID)
VALUES (@QuestionID, @UserID)
我执行了这个程序,看起来效果很好
然后我编写了Python代码来连接到这个数据库并执行这个过程
import pyodbc as po
# Connection variables
server = '################'
database = '#############'
username = '#############'
password = '################'
# Connection string
cnxn = po.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=' +
server+';DATABASE='+database+';UID='+username+';PWD=' + password)
cursor = cnxn.cursor()
# Prepare the stored procedure execution script and parameter values
storedProc = "EXEC SetPoints @QuestionID = ?, @UserID = ?"
params = (2, 3)
# Execute stored procedure with parameters
cursor.execute(storedProc, params)
# Close the cursor and delete it
cursor.close()
del cursor
# Close the database connection
cnxn.close()
当我运行Execute
时,Python代码不会显示任何错误,但是如果我检查Points
表,则不会插入任何内容
谁能告诉我发生了什么事?该过程在SSMS中运行良好,但当我从Python执行它时,什么也没有发生
解决方案: 解决方案是将
auto_commit=True
添加到pyodbc.connect()
函数中。 我在这个网站上的另一篇文章中找到了答案相关问题 更多 >
编程相关推荐