在SQL中使用QuotedStr

IEl*_*ite 1 sql delphi oracle delphi-7

我需要在下面的地方添加另一个条件

SQL.Add('where (cmcl_bank_cleared is not null) AND ((cmcl_bank_cleared - check_date) >=:DaysParam)');
Run Code Online (Sandbox Code Playgroud)

我还需要补充一下

和(cmcl_bank_cleared <> to_date('01/01/2011','mm/dd/yyyy'))

问题是单引号

我可以做以下吗?

SQL.Add('where (cmcl_bank_cleared is not null) AND ');
SQL.Add('(cmcl_bank_cleared <> to_date(' + QuotedStr(01/01/2011) + ', ' + QuotedStr('mm/dd/yyyy') + ')');
SQL.Add('((cmcl_bank_cleared - check_date) >=:DaysParam)');
Run Code Online (Sandbox Code Playgroud)

Mas*_*ler 8

您可以使用QuotedStr构建查询,但这不是最好的主意.如果任何输入来自用户,他们理论上可以输入奇怪的东西,最终会对您的数据库产生不良影响.这称为SQL注入,对许多网站来说是一个严重的安全问题.

将值插入到查询中间的正确且安全的方法是使用参数化查询.查找有关数据集的Params属性的文档,以了解其工作原理.