Beleza galera, valeu.. minha duvida era se eu dar o Free no RetDados, ele
iria dar no cQ de dentro da função.. :D...

O problema agora, é a transacao... quando eu der o Free na funcao RetDados,
tudo nela é liberado, inclusive a transacao?

[]s

2008/6/9 Joao Morais <[EMAIL PROTECTED]>:

>   Fellipe Henrique wrote:
> > 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;
>
> with RetDados('select * from cliente') do
> try
> ShowMessage(FieldByName('RAZAO').AsString);
> finally
> Free;
> end;
>
> Sugestão da casa: economize nos with, use com moderação.
>
> --
> Joao Morais
>
> >
> > 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]<davi.wall%40mult.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: delphi-br@yahoogrupos.com.br 
> >> <delphi-br%40yahoogrupos.com.br><delphi-br%
> 40yahoogrupos.com.br> [mailto:
> >> delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br><delphi-br%
> 40yahoogrupos.com.br>] Em nome de
> >> Fellipe Henrique
> >> Enviada em: segunda-feira, 9 de junho de 2008 15:56
> >> Para: delphi-br@yahoogrupos.com.br 
> >> <delphi-br%40yahoogrupos.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 <[EMAIL 
> >> PROTECTED]<djpardalrocha%40hotmail.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: delphi-br@yahoogrupos.com.br 
> >>> <delphi-br%40yahoogrupos.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] <fellipeh%40gmail.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] <fellipeh%40gmail.com> <fellipeh%40gmail.com>
> <mailto:fellipeh%40gmail.com <fellipeh%2540gmail.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.msn.com/?mkt=pt-br
> >>>
> >>>
> >> --
> >> _________________________________
> >> T.·.F.·.A.·.
> >> Fellipe Henrique
> >> [EMAIL PROTECTED] <fellipeh%40gmail.com> <fellipeh%40gmail.com>
> <mailto:fellipeh%40gmail.com <fellipeh%2540gmail.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]

Sou a favor da lei LEI 607/2007


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

Responder a