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.