Creating Parameters at Runtime
Go Up to Understanding Stored Procedure Parameters
If the name of the stored procedure is not specified in StoredProcName until runtime, no TParam
objects will be automatically created for parameters and they must be created programmatically. This can be done using the TParam.Create
method or the TParams.AddParam
method.
For example, the InterBase stored procedure GET_EMP_PROJ
, below, requires one input parameter (EMP_NO
) and one output parameter (PROJ_ID
).
CREATE PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT) RETURNS (PROJ_ID CHAR(5)) AS BEGIN FOR SELECT PROJ_ID FROM EMPLOYEE_PROJECT WHERE EMP_NO = :EMP_NO INTO :PROJ_ID DO SUSPEND; END
The Delphi code to associate this stored procedure with a TIBStoredProc
named StoredProc1
and create TParam
objects for the two parameters using the TParam.Create
method is:
var P1, P2: TParam; begin {...} with StoredProc1 do begin StoredProcName := 'GET_EMP_PROJ'; Params.Clear; P1 := TParam.Create(Params, ptInput); P2 := TParam.Create(Params, ptOutput); try Params[0].Name := ‘EMP_NO’; Params[1].Name := ‘PROJ_ID’; ParamByname(‘EMP_NO’).AsSmallInt := 52; ExecProc; Edit1.Text := ParamByname(‘PROJ_ID’).AsString; finally P1.Free; P2.Free; end; end; {...} end;