Delphi FDQuery.SQL 以 '!' 开头的字符串不工作

Delphi FDQuery.SQL string starting with '!' dont work

我有一个使用参数动态设置的查询。 我查询带有 varchar 字段的行,该字段包含可以以“!”开头的值。 但我没有那些匹配。 我使用 SQLServer 作为数据库服务器。 如果我直接在数据库管理器中使用 sqlcode 和 运行 它可以工作,但不能使用 TFDQuery。 请参阅下面的代码示例:

  myParameter := '!Tommy';
  with qryExec do
  begin
   SQL.Clear ;
   SQL.Add('SELECT * FROM myTable T WHERE T.Name='+quotedStr(myParameter));
   active := true ;
   first;
    if Not Eof then
    begin
      Result := True;
    end;
  end; //with

我不知道这里出了什么问题,所以如果有人能来解释一下,我会很高兴。

我建议使用实际参数,这也避免了 SQL 注入的可能性。还有 Open 的重载版本可以减少内务处理行数。

  FDQuery1.Open('SELECT * FROM myTable T WHERE T.Name= :NAME',['!Tommy'],[ftWideString]);