Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Function con retorno multiple (https://www.clubdelphi.com/foros/showthread.php?t=60465)

MaMu 03-10-2008 01:17:44

Function con retorno multiple
 
Resulta que tengo una funcion que me devuelve el valor de un campo de una consulta en una tabla. Ahora bien, se puede hacer una funcion que devuelva mas de un valor? es decir, que retorne dos campos en vez de uno. (todos los campos son del mismo tipo)
Por ejemplo, direccion y telefono.

Saludos

Kipow 03-10-2008 01:45:21

Prueba utilizando el tipo variant;

Código Delphi [-]
var
   v : Variant;
   Direccion,
   Telefono : String;
 
begin
   // La funcion ConsultaSQL retorna un Variant; Obvio esta la debes de definir.
   V := ConsultaSQL('SELECT DIRECCION, TELEFONO FROM MITABLA');
   
   Direccion := V[0];
   Telefono := V[1];

duilioisola 03-10-2008 08:36:10

Creo entender que tu problema se solucionaría pasando parametros por referencia:
Código Delphi [-]
procedure DameDireccionYTelefono(CodigoCliente : integer; var Direccion, Telefono : string);
begin
   {hacer el select}
   Direccion := FieldByName['DIRECCION'].AsString;
   Telefono := FieldByName['TELEFONO'].AsString;
end;
y la llamarías así:
Código Delphi [-]
var
   dir : string;
   tel : string;
begin
   ...
   DameDireccionYTelefono(123,dir,tel);
   ...
end;

DarkMan 03-10-2008 13:54:53

Yo lo haría usando arrays:

Código Delphi [-]
 Type TResultadoMultiple= Array [1..3] of String;
 ...
 
 Function DevolverDatos(CodCliente: Integer): TResultadoMultiple;
 begin
  Result[1]:='lalala';
  Result[2]:='lelele';
  Result[3]:='lololo';
 end;
...
 
 Procedure TForm1.Button1click(Sender: TObject);
 var  ResultadoMultiple: TResultadoMultiple; 
 begin
  ...
  ResultadoMultiple:= DevolverDatos(56);
  ...
 end;


La franja horaria es GMT +2. Ahora son las 09:58:33.

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