2013-08-13 1 views
1
for _item in file_list: 
    for col in cursor.execute("select column1,column2 from tbl"): 
     if _item[0]==col.column1: 
      #I also tried using a different cursor, still doesn't work 
      var1 = cursor.execute("select column2 from tbl where column1=?", _item[0]) 
      for i in var1: var2 = i[0] 
      try: 
       cursor3.execute("insert into tbl(column2,column1,column3,column4) values (?,?,?,?)", (var1, _item[0],_item[1],_item[2])) 
       cursor3.commit() 
      except IOError as error: 
       print error 

목록에있는 값과 column1의 값을 비교하면 일치하는 경우 동일한 값으로 column2 값을 가져옵니다. 그런 다음 column2의 값으로 새 행을 추가하지만 나머지 행렬에는 다른 값을 추가하십시오. 줄에함수 시퀀스 오류 (0) (SQLFetch) - SQL, Pyodbc

Error: ('HY010', '[HY010] [Microsoft][ODBC Driver Manager] Function sequence error (0) (SQLFetch)') 

:

for columnrow in cursor.execute("select column1,column2 from tbl") 
+0

당신이 생성 말하는 라인을 오류가 코드 샘플에 나타나지 않습니다. 또한 오타가있는 것 같습니다 : 나는'colum2'가'column2'라고 생각합니다. – bernie

+0

죄송합니다. – astraTiCon

답변

1

당신이 무슨 일을하는지는

그러나 불행하게도 그것은 내가 그것을했던 방식으로 작동 doesen't은 파이썬 위의 코드를 실행할 때하면 오류가 발생합니다 이 답변에 대한 @ ScottMorken의 의견에 따라 잘 작동해야합니다.


올드 대답 : 당신은 예를 들어, 사용하여 쿼리의 결과를 검색 할 필요가
.fetchall()
그래서 대신에 선 당신은 할 수 :

for columnrow in cursor.execute("select column1,column2 from tbl").fetchall(): 
    ... 
+1

은 https://github.com/mkleehammer/pyodbc/wiki/Getting-started에 따라 수정되지 않았습니다. 페이지 참조 : "한 번에 하나의 행을 처리하려는 경우 커서 자체를 반복기로 사용할 수 있습니다." –

+0

아, 고맙습니다. @ ScottMorken. 나는 내 대답을 고쳐 줄 것이다. – bernie