我正在运行一个相对简单的 python 脚本,该脚本旨在读取具有一系列存储过程的文本文件 - 每行一个。脚本应该在第一行运行存储过程,移动到第二行,在第二行运行存储过程,等等。运行这些存储过程应该填充一个特定的表。
所以我的问题是这些程序没有用它们应该的所有结果填充表。例如,如果我的文件看起来像
exec myproc 'data1';
exec myproc 'data2';
myproc 'data1' 应该用大约 100 条记录填充另一个表,而 myproc 'data2' 应该用另外 50 条记录填充这个另一个表。相反,我最终得到了大约 9 个结果 - 第一个过程中有 5 个,第二个过程中有 4 个。
我知道这些程序有效,因为如果我通过 OSQL 运行相同的 sql 文件(使用 procs)并且我在另一个表中得到正确的 ~150 条记录,那么显然这与我的脚本有关。
这是我正在运行的代码:
import pypyodbc
conn = pypyodbc.connect(CONN_STR.format("{SQL Server}",server,database,user,password))
conn.autoCommit = True
procsFile = openFile('otherfile.txt','r+')
#loop through each proc (line) in the file
for proc in procsFile:
#run the procedure
curs = conn.cursor()
curs.execute(proc)
#commit results
conn.commit()
curs.close();
conn.close();
procsFile.close();
我认为这与未提交的程序有关......或什么?坦率地说,我真的不明白为什么只提交 5/100 条记录。
我不知道。任何帮助或建议将不胜感激。