Как правильно динамически создавать и вызывать хранимую процедуру в 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;
Однако хранимая процедура не выполняется. То есть код работает нормально, сообщение об ошибке не отображается, но хранимая процедура не запускается.
Дополнительная информация - все работает нормально, если я удаляю компонент и устанавливаю параметры в коде.
Кто-нибудь имеет представление о том, что мне не хватает?