Ver la Versión Completa : 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;
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:
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í:
var
dir : string;
tel : string;
begin
...
DameDireccionYTelefono(123,dir,tel);
...
end;
DarkMan
03-10-2008, 13:54:53
Yo lo haría usando arrays:
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;
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.