我拥有并编写了从SQL中选择并返回值的脚本,脚本使用"code = code + 1“方法来创建select的条件。
但有时这种情况不存在,我该怎么做呢?
在这里,实际的脚本部分:
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
CodePro = SQL.fetchone()[0]但是,当不返回值时,将打印以下错误
TypeError:“NoneType”对象不可订阅
发布于 2011-12-10 08:12:42
无论您使用什么库来执行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]发布于 2011-12-10 05:40:34
SQL.execute("SELECT CodePro FROM Table WHERE CodeID = ?", x)
try:
CodePro = SQL.fetchone()[0]
except:
# Your exit here
break发布于 2011-12-10 05:50:18
也许您可以修改SQL以避免Null结果。
如在SQLServer中,请使用以下命令:
SELECT COALESCE(CodePro,-1) FROM Table WHERE CodeID = ?如果CodePro为空,它将返回-1。
要了解更多关于合并的信息:http://msdn.microsoft.com/en-us/library/aa258244(v=sql.80).aspx
https://stackoverflow.com/questions/8454667
复制相似问题