如何使用 pyodbc 对多个查询进行单次提交

How do I single commit for multiple queries using pyodbc

我正在尝试使用 pyodbc 将数据插入 AZURE SQL table。这里我使用了三个 SQL 查询,当我试图将数据插入 table 时,只有最后一个 sql 语句正在插入。

def dbQuery_Multiple_Row(sql,li):
  global cursor, conn
  cursor, conn =db_connection_dev01()
  try:
    cursor.execute(sql)
  except Exception as e:
    li.append("Error-"+str(e))
sql1 = "insert into stars.sampledata values ('Suneel Kummar I', 2, 'Sullurepeta')"
sql2 = "insert into stars.sampledata values ('Suneel Kummar Il', 3, 'Sullurepeta')"
sql3 = "insert into stars.sampledata values ('Suneel Kummar Ill', 4, 'Sullurepeta')"

import pyodbc
sql = [sql1, sql2, sql3]
li = []
dbQuery_Multiple_Row(sql1, li)
dbQuery_Multiple_Row(sql2, li)
dbQuery_Multiple_Row(sql3, li)
conn.commit()
conn.close()

我的任务是我应该为所有 sql 查询提交一次,但只对最后一个 SQL 查询提交。 请帮帮我。提前致谢。

您的问题是 db_connection_dev01 会打开一个新连接。
因此,每次调用 dbQuery_Multiple_Row 都会打开一个连接,但只会为最后一次执行提交。
它解释了为什么您只看到第三个查询的结果。 要解决此问题,您需要使用相同的连接。
一种修复方法是在 dbQuery_Multiple_Row 之前打开它并将其作为参数传递