Supplying parameters at runtime
From InterBase
Go Up to Setting parameters
To create parameters at runtime, you can use the:
ParamByName
method to assign values to a parameter based on its name.- Params property to assign values to a parameter based on the parameter’s ordinal position within the SQL statement.
Params.ParamValues
property to assign values to one or more parameters in a single command line, based on the name of each parameter set. This method uses variants and avoids the need to cast values.
Note:
In dialect 3, parameter names passed to functions are case-sensitive.
In dialect 3, parameter names passed to functions are case-sensitive.
For all of the examples below, assume the SQL
property contains the SQL statement below. All three parameters used are of data type ftString
.
INSERT INTO "COUNTRY.DB"
(Name, Capital, Continent)
VALUES (:Name, :Capital, :Continent)
The following code uses ParamByName
to assign the text of an edit box to the Capital parameter:
IBQuery1.ParamByName(‘Capital’).AsString := Edit1.Text;
The same code can be rewritten using the Params property, using an index of 1 (the Capital parameter is the second parameter in the SQL statement):
IBQuery1.Params[1].AsString := Edit1.Text;
The command line below sets all three parameters at once, using the Params.ParamValues
property:
IBQuery1.Params.ParamValues[‘Country;Capital;Continent’] := VarArrayOf([Edit1.Text, Edit2.Text, Edit3.Text]);