【问题标题】:Delphi FDQuery.SQL string starting with '!' dont workDelphi FDQuery.SQL 字符串以 '!' 开头不工作
【发布时间】:2021-11-26 19:08:20
【问题描述】:

我有一个使用参数动态设置的查询。 我查询带有 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

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

【问题讨论】:

标签: delphi firedac


【解决方案1】:

我建议使用实际参数,这也避免了 SQL 注入的可能性。还有Open 的重载版本可以减少管家工作。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2011-04-03
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    相关资源
    最近更新 更多