我有这个sql语句SELECT * FROM Language WHERE LanguageCode=?
,其中LanguageCode是一个varchar(2)。
当我在该语句上使用sqlite3-prepare-v2时,我得到了SQLITE_ERROR但是如果我使用SELECT * FROM Language WHERE LanguageID=?
,其中LanguageID是主键数字标识字段,则语句编译得很好。
是否存在使用WHERE语句过滤varchar字段的问题?
由于
答案 0 :(得分:0)
我认为使用varchar字段where语句应该没有问题。 也许你在传递参数方面遇到了问题。尝试打印到NSLog并查看执行的语句,并使用sqlite命令提示符执行它以查看是否有返回值。
答案 1 :(得分:0)
确定你的?用单引号括起来。
SQLite还应该给你一个错误字符串,告诉你为什么会出错。
答案 2 :(得分:0)
尝试调用sqlite3_errmsg
并检查该调用返回的错误字符串。它应该为您提供有关出错的更详细信息。
克劳斯