Assim não funga? Tirando o Free que libera o ponteiro.
 
    with RetDados('select * from cliente') do
    begin
        ShowMessage(FieldByName('RAZAO').AsString);
        Free( )
    end;


  _____  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Fellipe Henrique
Enviada em: segunda-feira, 9 de junho de 2008 16:11
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Ajuda numa função que retorna DataSet.



Davi, na verdade queria usar algo simples, sem ter que declarar nada, no
estilo:

with RetDados('select * from cliente') do
begin
ShowMessage(FieldByName('RAZAO').AsString);
end;

Seria pra facilitar, visto que, já tenho uma função que faz isso, porém
tenho que declarar variavel, igual vc me mostrou, mas queria simplificar,
claro se for possível.. :o)

[]s

2008/6/9 Davi Eduardo Borges Wall <[EMAIL PROTECTED]
<mailto:davi.wall%40mult.com.br> com.br>:

> Ai ai ai ai, ta faltando teoria Felipe! Só botar a mão na massa sem
> entender o que está fazendo é perigoso.
>
> Você vai ter que retirar aquele CQ.FREE de dentro de sua função.
> Na outra ponta você faz assim:
>
> Var
> MeuDataSet: TDataSet;
> Begin
> MeuDataSet := RetDados('SELECT BLA FROM BLA');
> try
>
> //faço o que tenho que fazer
> finally
>
> MeuDataSet.Free;
>
> End;
>
> Felipe vc precisa de mais entendimento da linguagem e de ponteiros, que é
> necessário para praticar uma boa programação.
> Sugiro a você comprar algum livro de Delphi e estudar mais.
>
> []'s
>
> De: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
<delphi-br%40yahoogrupos.com.br> [mailto:
> [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
<delphi-br%40yahoogrupos.com.br>] Em nome de
> Fellipe Henrique
> Enviada em: segunda-feira, 9 de junho de 2008 15:56
> Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br>
os.com.br <delphi-br%40yahoogrupos.com.br>
> Assunto: Re: [delphi-br] Ajuda numa função que retorna DataSet.
>
>
> Mas Rubem, isso eu havia entendido, porém.. se eu der um RetDados.Free;
> estarei liberando meu cQ que está dentro da função? E tipo, não tem como
eu
> passar os dados, fechar a Query, liberar ela, e os dados permanecerem não?
> Minha preocupação é com o desenrolar do sistema, muitas querys abertas sem
> fechar..
>
> []s
>
> 2008/6/9 Rubem Nascimento da Rocha <djpardalrocha@
<mailto:djpardalrocha%40hotmail.com>
hotmail.com<djpardalrocha%40hotmail.com><mailto:
> djpardalrocha%40hotmail.com <djpardalrocha%2540hotmail.com>> >:
>
> >
> > É óbvio que tá dando erro! Preste atenção! Vc está liberando uma
consulta
> > que está sendo o retorno da sua função. Se vc libera a consulta, logo
vai
> > estar liberando o retorno! Esse é o erro! A consulta não deve ser
> liberada!
> > Atente para isso!
> >
> > Sds.
> >
> > ________________________________
> >
> > To: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br>
os.com.br <delphi-br%40yahoogrupos.com.br><mailto:
> delphi-br%40yahoogrupos.com.br <delphi-br%2540yahoogrupos.com.br>>
> <delphi-br%40yahoogrupos.com.br>
> > From: [EMAIL PROTECTED] <mailto:fellipeh%40gmail.com> com
<fellipeh%40gmail.com> <mailto:
> fellipeh%40gmail.com <fellipeh%2540gmail.com>> <fellipeh%40gmail.com>
>
> > Date: Mon, 9 Jun 2008 15:47:04 -0300
> > Subject: [delphi-br] Ajuda numa função que retorna DataSet.
> >
> >
> > Olá amigos, estou criando uma função, que me retorne um DataSet, com o
> > resultado de um SQL passado como parametro, porém não estou
conseguindo..
> > estou fazendo assim:
> >
> > function RetDados(sSQL: string): TDataSet;
> > var
> > cQ: TIBCQuery;
> > cT: TIBCTransaction;
> > begin
> > cT := TIBCTransaction.Create(nil);
> > cT.AddConnection(DM.Conexao);
> >
> > cQ := TIBCQuery.Create(nil);
> > cQ.Transaction := cT;
> > cQ.UpdateTransaction := cT;
> > cQ.UniDirectional := True;
> > try
> > cQ.SQL.Text := sSQL;
> > cQ.Open;
> > Result := cQ;
> > finally
> > cQ.Free;
> > cT.Free;
> > end;
> > end;
> >
> > Porém, sempre me retorna NIL, pois de qualquer forma passa no cQ.Free, e
> > estou achando que quando faz isso eu perco o resultado. Seria isso
mesmo?
> > Se
> > for, como concerto isso?
> >
> > Desde já agradeço.
> >
> > []s
> >
> > --
> > _________________________________
> > T.·.F.·.A.·.
> > Fellipe Henrique
> > [EMAIL PROTECTED] <mailto:fellipeh%40gmail.com> com <fellipeh%40gmail.com>
<mailto:fellipeh%40gmail.com<fellipeh%2540gmail.com>>
> <fellipeh%40gmail.com>
> >
> > Sou a favor da lei LEI 607/2007
> >
> > __________________________________________________________
> > Confira vídeos com notícias do NY Times, gols direto do Lance,
> > videocassetadas e muito mais no MSN Video!
> > http://video. <http://video.msn.com/?mkt=pt-br> msn.com/?mkt=pt-br
> >
> >
>
> --
> _________________________________
> T.·.F.·.A.·.
> Fellipe Henrique
> [EMAIL PROTECTED] <mailto:fellipeh%40gmail.com> com <fellipeh%40gmail.com>
<mailto:fellipeh%40gmail.com<fellipeh%2540gmail.com>>
>
>
> Sou a favor da lei LEI 607/2007
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

-- 
_________________________________
T.·.F.·.A.·.
Fellipe Henrique
[EMAIL PROTECTED] <mailto:fellipeh%40gmail.com> com

Sou a favor da lei LEI 607/2007

[As partes desta mensagem que não continham texto foram removidas]



 


[As partes desta mensagem que não continham texto foram removidas]

Responder a