Zeolibs:Where 子句中的未知列

Zeolibs: Unknown column in Where clause

我正在尝试使用 Zeolibs 执行 SQL 查询,但编译器一直抱怨出现以下错误 - Where 子句中的未知列。

ZQuery1.SQL.Text := 'SELECT * FROM new_table WHERE TagName = '+theSig.f.TagName;
ZQuery1.ExecSQL;

但我检查了我数据库中的所有列 table,它是正确的,因为我在这里 TagName

我的 SQL 陈述有什么问题?

您需要使用QuotedStr功能。所以你的代码将是

ZQuery1.SQL.Text := 'SELECT * FROM new_table WHERE TagName = '+QuotedStr(theSig.f.TagName);

更好的选择是使用 parametrized queries (this will block attempts for SQL injection - take a quick look at this 问题)。

ZQuery1.SQL.Text := 'SELECT * FROM new_table WHERE TagName = :myparam';
ZQuery1.ParamByName('myparam').AsString := theSig.f.TagName;