CurrentParamsRow: Integer;
The CurrentParamsRow property returns the index of the current set of parameters.
The parameter values are defined in the Params collection. To move to the next set of parameters, use the NextParamsRow method. When the Execute method is executed, all the sets of parameters in the range from zero to CurrentParamsRow inclusive are processed. When the ExecuteWithoutLast method is executed, all the ranges in the range from zero to CurrentParamsRow excluding the values specified in the CurrentParamsRow set.
After executing the Execute or ExecuteWithoutLast method, the CurrentParamsRow property is set to zero. This enables the user to set values of the parameter sets again and run the command.
Executing the example requires a database with the DB identifier and a table with the MyTable identifier in the repository.
Sub UserProc;
Var
Mb : IMetabase;
DB_ORCL8 : IDatabaseInstance;
Command : IDalCommand;
CommandEx : IDalCommandEx;
Params : IDalCommandParams;
sql : String;
paramArraySize, i, j : Integer;
Begin
MB := MetabaseClass.Active;
DB_ORCL8 := MB.ItemById("DB").Open(Null) As IDatabaseInstance;
sql := "insert into MyTable (field,field1) values(:1,:2)";
Command := DB_ORCL8.Connection.CreateCommand(sql);
Command.Type := DalCommandType.Text;
Command.Parse;
Command.Prepare;
Params := Command.Params;
Params.Item(0).DataType := DbDataType.String;
Params.Item(1).DataType := DbDataType.Float;
paramArraySize := 4;
Command.MaxParamsRows := paramArraySize;
j := 1;
For i := 1 To 10 Do
Params.Item(0).Value := "№ "+i.ToString;
Params.Item(1).Value := i + 0.1;
If (j < paramArraySize) Then
Command.NextParamsRow;
j := j+1;
Else
Command.Execute;
j:= 1;
End If;
End For;
If j > 1 Then
For i := 0 To Command.CurrentParamsRow Do
CommandEx := Command As IDalCommandEx;
CommandEx.SetCurrentParamsRow(i);
Debug.Write(Params.Item(0).Value);
Debug.Write(" ");
Debug.WriteLine(Params.Item(1).Value);
End For;
Command.ExecuteWithoutLast;
End If;
End Sub UserProc;
10 records are inserted into the table after executing this example. The sets of parameters that exceeded the maximal set of processed strings is displayed in the console window.
See also: