Python 代码没有 运行 SQL 存储过程完全
Python code doesn't run the SQL stored procedure completely
我不精通Python,但我写了一个python代码来执行一个存储过程(SQL服务器),其中包含多个存储过程,因此通常需要在 SSMS 上 运行 需要 5 分钟左右。
当我 运行 Python 代码时,我可以看到存储过程 运行s 中途没有错误,这让我觉得在编码时需要更多时间来执行python.
我发现其他帖子中有人建议使用子流程,但我不知道如何对此进行编码。下面是一个(不是我的)python 代码的例子来执行存储过程。
mydb_lock = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
'Server=localhost;'
'Database=InterelRMS;'
'Trusted_Connection=yes;'
'MARS_Connection=yes;'
'user=sa;'
'password=Passw0rd;')
mycursor_lock = mydb_lock.cursor()
sql_nodes = "Exec IVRP_Nodes"
mycursor_lock.execute(sql_nodes)
mydb_lock.commit()
如何编辑以上代码以使用子流程?子流程是正确的选择吗?您可以推荐任何其他方法吗?
非常感谢。
Python 2.7 和 3
SQL 服务器
2022 年 4 月 4 日更新:
@AlwaysLearning,我试过了
NEWcnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password+';Connection Timeout=0')
但是没有任何变化。我注意到,为了检查它执行了多少代码,我在我认为 SP 停止的嵌套过程中的某处紧接着插入了以下两行代码。
INSERT INTO CheckTable (OrgID,Stage,Created) VALUES(@OrgID,2.5331,getdate())
INSERT INTO CheckTable (OrgID,Stage,Created) VALUES(@OrgID,2.5332,getdate())
只完成了第一个查询。如果有帮助,我会使用 Azure DB。
2022 年 5 月 4 日更新:
我尝试了@AlwaysLearning 建议的方法,在我连接后,我添加了 NEWconxn.timeout=4000
现在可以使用了
我尝试了@AlwaysLearning 的建议,在连接后,我添加了 NEWconxn.timeout=4000,它现在可以正常工作了。非常感谢。
我不精通Python,但我写了一个python代码来执行一个存储过程(SQL服务器),其中包含多个存储过程,因此通常需要在 SSMS 上 运行 需要 5 分钟左右。
当我 运行 Python 代码时,我可以看到存储过程 运行s 中途没有错误,这让我觉得在编码时需要更多时间来执行python.
我发现其他帖子中有人建议使用子流程,但我不知道如何对此进行编码。下面是一个(不是我的)python 代码的例子来执行存储过程。
mydb_lock = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
'Server=localhost;'
'Database=InterelRMS;'
'Trusted_Connection=yes;'
'MARS_Connection=yes;'
'user=sa;'
'password=Passw0rd;')
mycursor_lock = mydb_lock.cursor()
sql_nodes = "Exec IVRP_Nodes"
mycursor_lock.execute(sql_nodes)
mydb_lock.commit()
如何编辑以上代码以使用子流程?子流程是正确的选择吗?您可以推荐任何其他方法吗?
非常感谢。
Python 2.7 和 3 SQL 服务器
2022 年 4 月 4 日更新:
@AlwaysLearning,我试过了
NEWcnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password+';Connection Timeout=0')
但是没有任何变化。我注意到,为了检查它执行了多少代码,我在我认为 SP 停止的嵌套过程中的某处紧接着插入了以下两行代码。
INSERT INTO CheckTable (OrgID,Stage,Created) VALUES(@OrgID,2.5331,getdate())
INSERT INTO CheckTable (OrgID,Stage,Created) VALUES(@OrgID,2.5332,getdate())
只完成了第一个查询。如果有帮助,我会使用 Azure DB。
2022 年 5 月 4 日更新:
我尝试了@AlwaysLearning 建议的方法,在我连接后,我添加了 NEWconxn.timeout=4000
现在可以使用了
我尝试了@AlwaysLearning 的建议,在连接后,我添加了 NEWconxn.timeout=4000,它现在可以正常工作了。非常感谢。