Как правильно динамически создавать и вызывать хранимую процедуру в Delphi с помощью FireDac?

Я относительно новичок в FireDAC. Я хочу, чтобы иметь возможность вызывать хранимую процедуру "на лету", динамически. Пока у меня есть следующее:

function TForm21.ExecuteStoredProc(aSPName: string; aParams: TADParams): Boolean;
var
  LSP: TADStoredProc;
  i: Integer;
begin
  LSP := TADStoredProc.Create(nil);
  try
    LSP.Connection := ADConnection1;
    LSP.StoredProcName := aSPName;
    LSP.Prepare;
    for i := 0 to aParams.Count - 1 do
    begin
      LSP.Params[i].Value := aParams[i].Value;
    end;
    LSP.ExecProc;
  finally
    LSP.Free;
  end;
  Result := True;
end;

Я звоню с

procedure TForm21.Button1Click(Sender: TObject);
var
  LParams: TADParams;
begin
  LParams := TADParams.Create;
  LParams.Add.Value := 612;
  LParams.Add.Value := '2008';

  ExecuteStoredProc('HDMTEST.dbo.spARCHIVE_HISTORY_DATA', LParams);
end;

Однако хранимая процедура не выполняется. То есть код работает нормально, сообщение об ошибке не отображается, но хранимая процедура не запускается.

Дополнительная информация - все работает нормально, если я удаляю компонент и устанавливаю параметры в коде.

Кто-нибудь имеет представление о том, что мне не хватает?

Ответы на вопрос(1)

Ваш ответ на вопрос