2013-04-10 95 views
1

我试图运行从一个Python脚本以下UPDATE查询(请注意,我已经删除了数据库信息)freetds的/ SQL服务器更新查询无限期挂起

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查询时没有问题。我也有打电话给CASTSELECT查询(我已经投sanction_id AS INTaction_summary AS TEXT [nvarchar对数据库] [int identity对数据库])正确填写资料,所以也许问题就出在某个地方,但我不知道在哪里开始调试。将文本转换为NVARCHAR也没有做任何事情。

下面是数据行的一个示例:

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

回答

1

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