У меня есть и скрипт make select из SQL и возвращает значение, и скрипт работает с методом "code = code + 1", чтобы сделать условия выбора.
Но иногда условие не существует, как я могу прокормить?
Здесь фактическая часть скрипта:
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
CodePro = SQL.fetchone()[0]
но когда значение не возвращается, выводится следующая ошибка
TypeError: объект "NoneType" не подлежит расшифровке
Любая библиотека, которую вы используете для выполнения операторов SQL, должна иметь возможность различать пустой набор результатов и один с одной или несколькими строками. Проверьте руководство для pyodbc. Что-то вроде этого будет работать:
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
row = SQL.fetchone()
if row: # check if there was at least one row returned
CodePro = row[0]
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
try:
CodePro = SQL.fetchone()[0]
except:
# Your exit here
break
Возможно, вы можете изменить SQL, чтобы избежать результата Null.
например, в SQLServer, используйте это:
SELECT COALESCE(CodePro,-1) FROM Table WHERE CodeID = ?
он вернет -1, если CodePro - Null.
узнать больше о COALESCE: http://msdn.microsoft.com/en-us/library/aa258244(v=sql.80).aspx
Один из вариантов заключается в том, чтобы окружить его с помощью try/except и иметь "кроме" set CodePro значение, которое позволяет вам знать, что он ничего не нашел (например: -1).
NULL
отличается от пустого набора результатов.