Retorno de Função
Amigos, preciso fazer um que me retorne um ou vários Selects, dependendo do parametro a ser passado, exemplo:
Alguém tem uma idéia de como fazer uma única função, retornando tudo isso? O retorno tem que ser OleVariant?TClientDataSet? Ou que? Se alguém tem alguma idéia, fico no aguardo.
Se for CPF, retorna um select(Dados de uma única tabela[Clientes]).
Se for Data, retorna vários selects(Dados da Tabela de Venda, Itens, Forma de Pgto e Plano).
Alguém tem uma idéia de como fazer uma única função, retornando tudo isso? O retorno tem que ser OleVariant?TClientDataSet? Ou que? Se alguém tem alguma idéia, fico no aguardo.
Paulo
Curtidas 0
Respostas
Paulo
11/02/2008
Pessoal, achei algo. Acho que se eu colocar assim:
Nome_Funcao(Parametros).Nome_Do_Client_Data_Set, funciona. Na função eu crio os CDS necessários e chamo assim, passando somente o parametro.
Nome_Funcao(Parametros).Nome_Do_Client_Data_Set, funciona. Na função eu crio os CDS necessários e chamo assim, passando somente o parametro.
GOSTEI 0
Djjunior
11/02/2008
uma opção tb seria:
quando vc for chamar a função os parametros retorno1, retorno2 e retorno3 tem que ser variavéis, desta forma é como se sua função tivesse 4 results.
Funcao(par: string; var retorno1, retorno2, retorno3: integer): boolean; begin Result := True; if par = ´test´ then begin retorno1 := 1; retorno1 := 2; retorno1 := 3; end else if par = ´testando´ then begin retorno1 := 4; retorno1 := 5; retorno1 := 6; end else result := False; end;
quando vc for chamar a função os parametros retorno1, retorno2 e retorno3 tem que ser variavéis, desta forma é como se sua função tivesse 4 results.
GOSTEI 0
Onjahyr
11/02/2008
Seria mais fácil você usar o tipo variant num Array, pode retornar vários tipos e várias coisas numa só função
GOSTEI 0
Djjunior
11/02/2008
não sei... variant normalmente ocupam muita memória...
GOSTEI 0
Onjahyr
11/02/2008
uma opção tb seria:
quando vc for chamar a função os parametros retorno1, retorno2 e retorno3 tem que ser variavéis, desta forma é como se sua função tivesse 4 results.
Funcao(par: string; var retorno1, retorno2, retorno3: integer): boolean; begin Result := True; if par = ´test´ then begin retorno1 := 1; retorno1 := 2; retorno1 := 3; end else if par = ´testando´ then begin retorno1 := 4; retorno1 := 5; retorno1 := 6; end else result := False; end;
Você vai fazer como paa retornar estes valores? A única coisa que volta é TRUE ou o FALSE, o parâmetro que mensiona é de entrada e não de saída, foi isso que entendi.
Blz.
GOSTEI 0