FreeTDS / SQL Server UPDATE查询无限期挂起

时间:2013-04-10 00:30:42

标签: sql-server freetds

我正在尝试从python脚本运行以下UPDATE查询(请注意我已删除了数据库信息)

print 'Connecting to db for update query...'
db = pyodbc.connect('DRIVER={FreeTDS};SERVER=<removed>;DATABASE=<removed>;UID=<removed>;PWD=<removed>')
cursor = db.cursor()
print '    Executing SQL queries...'
for i in range(len(data)):
    sql = '''
        UPDATE product.sanction
        SET action_summary = '{action_summary}'
        WHERE sanction_id = {sanction_id};
        '''.format(sanction_id=data[i][0], action_summary=data[i][1])
    cursor.execute(sql)
cursor.close()
db.commit()
db.close()

然而,它无限期挂起,没有错误。

我是pyodbc的新手,但考虑到我在执行SELECT查询时没有问题,应该正确设置。我必须致电CAST查询SELECT次查询(我已在数据库中投放sanction_id AS INT [int identity]和action_summary AS TEXT [nvarchar数据库])以正确填充数据,所以问题可能存在于某处,但我不知道从哪里开始调试。将文本转换为NVARCHAR也没有做任何事情。

以下是数据中某一行的示例:

(2861357, 'Exclusion Program: NonProcurement; Excluding Agency: HHS; CT Code: Z; Exclusion Type: Prohibition/Restriction; SAM Number: S4MR3Q9FL;')

1 个答案:

答案 0 :(得分:1)

我无法找到我的问题,但我最终使用的是QuerySets,而不是运行UPDATE查询。