lcVillkor1 = "table.numbers > 1"
SELECT * FROM table WHERE lcVillkor1 ORDER BY table.numbers
我收到了错误 - SQL: WHERE clause is invalid
。
我几乎尝试了所有可能的组合
"table.numbers > 1", (table.numbers > 1), "(table.numbers > '1')"
等。
我试图从一张桌子上打印一些帖子(数字大于1)。
答案 0 :(得分:10)
在变量前使用&
展开它:
lcVillkor1 = "table.numbers > 1"
SELECT * FROM table WHERE &lcVillkor1 ORDER BY table.numbers
答案 1 :(得分:1)
您不能只将变量名放在一行代码中并让它执行。相反,将SQL命令构建为文本变量,然后使用宏替换等方法执行它:
lcVillkor1 = "table.numbers > 1"
lcSql = "SELECT * FROM table WHERE " + lcVillkor1 + " ORDER BY table.numbers"
&lcSql
此外,为了将来参考,可能不是理想的表格和字段名称靠近保留字 - 例如“表格”和“数字”。
答案 2 :(得分:0)
宏替换工作正常(在前面给出的两个示例中)。如果您使用VFP9,您还可以在构建查询字符串后使用函数EXECSCRIPT():
lcVillkor1 = "table.numbers > 1"
lcSql = "SELECT * FROM table WHERE " + lcVillkor1 + " ORDER BY table.numbers"
EXECSCRIPT(lcsql)