参数化SQL语句包含参数或变量,其值可以在设计时或运行时改变。参数可以替换出现在SQL语句中的数据值,例如WHERE子句中用于比较的数据值。通常,参数代表传递给语句的数据值。例如,在下面的INSERT语句中,要插入的值作为参数传递:
INSERT INTO Country (Name, Capital, Population) |
VALUES (:Name, :Capital, :Population) |
在这个SQL语句中,:Name,:Capital以及 :Population 是应用程序在运行时提供给语句的实际值的占位符。请注意,参数的名称以冒号开头。冒号是必需的,以便可以将参数名与文字值区分开来。还可以通过在查询中添加问号(?)来包含未命名的参数未命名参数由位置标识,因为它们没有唯一的名称。
在数据集可以执行查询之前,必须为查询文本中的任何参数提供值。
示例:
with ABSQuery1 do
begin
DatabaseName := 'emp_db';
SQL.Text := 'select * from employee where FirstName=:FirstName';
Params[0].AsString := 'Leslie';
Open;
end;