1

다른 스크립트로 데이터베이스 연결을 시도하고 있습니다. 그러나 스크립트가 제대로 작동하지 않았습니다. 내가 행에 '인쇄'를 할 경우UnboundLocalError : 할당 전에 로컬 변수 'rows'가 참조되었습니다.

는 다음 나는

'널 (null)'값을 얻을하지만이 쿼리 '사건 SELECT * FROM'를 사용하는 경우 다음 나는 테이블 사건의 결과를 얻을.

수입 데이터베이스

rows = database.database("INSERT INTO incidents VALUES(3 ,'test_title1', 'test',  TO_DATE('25-07-2012', 'DD-MM-YYYY'), CURRENT_TIMESTAMP, 'sector', 50, 60)") 
#print database.database() 
print rows 

database.py 스크립트 :

import psycopg2 
import sys 
import logfile 

def database(query): 
logfile.log(20, 'database.py', 'Executing...') 
con = None 

try:   
    con = psycopg2.connect(database='incidents', user='ipfit5', password='test') 

    cur = con.cursor() 
    #print query 

    cur.execute(query) 
    rows = cur.fetchall() 

    con.commit() 


#test row does work 
    #cur.execute("INSERT INTO incidents VALUES(3 ,'test_titel1', 'test', TO_DATE('25-07-2012', 'DD-MM-YYYY'), CURRENT_TIMESTAMP, 'sector', 50, 60)") 

except: 
    logfile.log(40, 'database.py', 'Er is iets mis gegaan') 
    logfile.log(40, 'database.py', str(sys.exc_info())) 

finally: 

    if con: 
     con.close() 
return rows 
+2

코드의 들여 쓰기를 수정하십시오. –

답변

3

전에 "행"을 선언하지 않기 때문에 당신의 "하려고하면"이 정의되지 않습니다 블록은 예외가있는 경우 . rows = []try 위에 올려보세요.

+0

예 .. 우리는 "UnboundLocalError : 할당되기 전에 참조 된 로컬 변수 '행 문제를 해결했습니다. 와우! – desimusxvii

+0

예, 감사합니다! 하지만 어떻게 데이터베이스에서 내 쿼리를 얻을 수 있습니까 ?? 나는 또한 내 코드에서 들여 쓰기를 찾았지만 좋은 것처럼 보입니까? – patrick

+0

우리는 당신이 예외를 얻는 것처럼 보일 것입니다. 그 결과를 인쇄 해 주시겠습니까? 그것은 str (sys.exc_info()) – desimusxvii

관련 문제