2011-12-10 2 views
1

나는 make에서 SQL에서 select를 선택하고 값을 반환하며, 스크립트는 select의 조건을 만들기 위해 "code = code + 1"메서드와 함께 작동합니다.어떻게하면 다음 결과를 해결할 수 있습니까?

하지만 때로는 조건이 존재하지 않는다면 어떻게해야합니까? 여기

실제 스크립트 부분 :

SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x) 
CodePro = SQL.fetchone()[0] 

하지만 값이 반환되지 않은 경우, 추적 오차는

TypeError: 'NoneType' object is not subscriptable

답변

0

하나의 옵션 제외/시도로 둘러싸하는 것입니다 인쇄하고, "except"가 CodePro에 아무것도 찾지 못했다는 것을 알려주는 값을 설정하십시오 (예 : -1). .

1
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x) 
try: 
    CodePro = SQL.fetchone()[0] 
except: 
    # Your exit here 
    break 
1

어쩌면 당신은 널 결과를 방지하기 위해 SQL을 수정할 수 등

을 SQLServer에 같이 이것을 사용 :

SELECT COALESCE(CodePro,-1) FROM Table WHERE CodeID = ? 

는 -1을 돌려줍니다 CodePro가 null의 경우.

은 유착에 대한 자세한 내용을 알고 : 당신은 SQL 문을 실행하는 데 사용할 무엇이든 라이브러리 http://msdn.microsoft.com/en-us/library/aa258244(v=sql.80).aspx

+0

예,하지만 NULL이있는 행이 하나있는 결과 집합과 빈 결과 집합이 다릅니다. –

2

가 빈 설정 결과 하나 개 이상의 행을 구별 할 수있는 방법이 있어야합니다. tutorial for pyodbc을 확인하십시오. 이 같은 것이 작동합니다 :