Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   regresar valores (https://www.clubdelphi.com/foros/showthread.php?t=30191)

Genner 10-02-2006 17:31:37

regresar valores
 
alguien sabe como hacer para que el procedimiento almacenado regrese valores
//este es mi procedimiento almacenado
create procedure regresa
@clave varchar(50),
@nombre varchar(50) OUTPUT

AS
DECLARE @regresa varchar(50)
SELECT @regresa =(select nombre from clientes where clave=@clave)
SET @nombre = @regresa
return

lo que no se es como capturar en delphi el valor OUTPUT de preferencia en runtime

lucasarts_18 10-02-2006 17:50:37

Hola:

Debes usar Return valor

Hasta Luego -

Genner 10-02-2006 17:58:28

regresar valores
 
pero como capturo ese valor en el delphi ? ahi si no tengo la menor idea

lucasarts_18 10-02-2006 18:45:18

Hola:

Debes definir las variables de entrada como las variables de salida, la ayuda de delphi está bien explicado, busca por params ayuda del componente que tu estás usando.

Si aún no lo logras te podría entregar un ejemplo, no lo hago ahora porque no me encuentro en casa.:o

Hasta Luego -

Genner 10-02-2006 18:53:17

agradeceria mucho el ejemplo pero seguire buscando en la ayuda :)

Xianto 03-04-2006 13:55:43

Bueno, para el procedimiento, seria más fácil algo así:

Código:

create procedure regresa
  @clave varchar(50)
AS
select nombre from clientes where clave=@clave

Con el tema, de ver datos desde Delphi...

Pones un TADOConnection y un TADOQuery enlazado a la conexión en tu formulario...

Código Delphi [-]
var i: string;
ADOConn.Connected := True;
ADOQuery.SQL.Text := 'regresa '+Chr(39)+variable_clave+Chr(39);
ADOQuery.Active := True;
While Not ADOQuery.Recordset.EOF Do
begin
i:=ADOQuery.Recordset.Fields[ADOQuery.FieldByName('nombre').FieldNo-1].Value;
ADOQuery.Recordset.MoveNext;
end;
ADOQuery.Active := False;

Ahora el valor de la variable i es el nombre del Cliente !!!

Dos formas interesantes de leer los datos:

1 - Cuando tienes muchos campos, para no enredarte puedes hacer así:
ADOQuery.Recordset.Fields[ADOQuery.FieldByName('nombre_campo').FieldNo-1].Value

2 - Cuando tienes un solo campo, lo más rápido:
ADOQuery.Recordset.Fields[0].Value


Saludos.


La franja horaria es GMT +2. Ahora son las 01:36:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi