Quiero crear programáticamente un SQLDataSet en Delphi y usarlo para ejecutar un Procedimiento almacenado y obtener el valor de un parámetro de salida. Parece fácil, pero no puedo hacer que funcione.Delphi: ¿Cómo obtener el valor de un parámetro de salida de un procedimiento almacenado?
Aquí es un procedimiento tonto almacenado en SQL Server:
CREATE PROCEDURE [dbo].getValue @x INT OUTPUT
AS
BEGIN
SET @x = 10;
END
Ahora aquí es una de las variaciones que he intentado y no funcionó:
proc := TSQLDataSet.Create(nil);
proc.SQLConnection := DefaultConnection;
proc.CommandText := 'getValue';
proc.Params.CreateParam(ftInteger, '@x', ptOutput);
proc.Params.ParamByName('@x').Value := 0;
proc.ExecSQL(False);
value := newIdProc.Params.ParamByName('@x').AsInteger;
pensé que sería fácil , pero hay algunos registredbugs alrededor de este problema.