2014-10-28 62 views
0

如何从另一个查询插入到表中?我的代码循环查询并将结果分配给变量。只要插入行,即使结果集中还有更多行,代码也会终止。让代码继续并将所有行插入结果集中的行的正确方法是什么?Python pymssql如何在for循环中插入?

cur.execute (query3) 
 

 
for row in cur: 
 
    calldate= row['calldate'] 
 
    account= row['account'] 
 
    call_time= row['Call_Time'] 
 
    distributor_name= row['distributor_name'] 
 
    callerid= row['callerid'] 
 
    call_status= row['call_status'] 
 
    partner_revenue= row['partner_revenue'] 
 
    tracking_phone= row['tracking_phone'] 
 
    quality_string= row['quality_string'] 
 
    column9= row['column 9'] 
 
    column10= row['column 10'] 
 
    column11= row['column 11'] 
 
    column12= row['column 12'] 
 

 
    if column9 is None and column10 is None and column11 is None and column12 is None: 
 
     to_db = calldate, account, call_time, distributor_name,callerid, call_status, partner_revenue, tracking_phone, quality_string 
 

 
    if column9 is not None and column10 is None and column11 is None and column12 is None: 
 
     to_db = calldate, account, call_time, distributor_name,callerid, call_status, partner_revenue, tracking_phone, quality_string +", "+ column9 
 

 
    if column9 is not None and column10 is not None and column11 is None and column12 is None: 
 
     to_db = calldate, account, call_time, distributor_name,callerid, call_status, partner_revenue, tracking_phone, quality_string +", "+ column9 +", "+ column10 
 

 
    if column9 is not None and column10 is not None and column11 is not None and column12 is None: 
 
     to_db = calldate, account, call_time, distributor_name,callerid, call_status, partner_revenue, tracking_phone, quality_string +", "+ column9 +", "+ column10 +", "+ column11 
 

 
    if column9 is not None and column10 is not None and column11 is not None and column12 is not None: 
 
     to_db = calldate, account, call_time, distributor_name,callerid, call_status, partner_revenue, tracking_phone, quality_string +", "+ column9 +", "+ column10 +", "+ column11 +", "+ column12 
 
    
 
    cur.execute (ins_query,(to_db)) 
 
    conn.commit()

+0

您正在对当前正在迭代的对象(cur)执行操作(执行),试图找到解决方法 – 2014-10-28 20:04:19

+0

感谢Tim。我创建了一个新的对象cur2和conn2,并工作。 – user1798898 2014-10-28 20:15:41

+0

酷,我发布了类似的答案,所以这可以“关闭” – 2014-10-28 20:17:52

回答

0
for row in cur: 
    #... 
    cur.execute (ins_query,(to_db)) 

你,你当前迭代(cur)执行的对象进行操作(execute),发现周围的一种方法,你的问题应该消失!