Como falei, Fellipe, vc tem que estudar mais o mecanismo de acesso a dados, para entender o porque dessas coisas.
Perdão pela franqueza, mas fica difícil dar aula de Delphi em um grupo de discussão. Você realmente tem que aprender certas coisas estudando, testando e tentando. Todas as suas dúvidas de perguntas recentes você poderia ter sanado criando um programinha e testando separadamente. De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Rubem Nascimento da Rocha Enviada em: segunda-feira, 9 de junho de 2008 16:30 Para: delphi-br@yahoogrupos.com.br Assunto: RE: [delphi-br] Ajuda numa função que retorna DataSet. Prioridade: Alta Uma coisa é liberar uma instância de um objeto de consulta. Outra coisa é finalizar uma transação. Sds. ________________________________ To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> From: [EMAIL PROTECTED] <mailto:fellipeh%40gmail.com> Date: Mon, 9 Jun 2008 16:28:50 -0300 Subject: Re: [delphi-br] Ajuda numa função que retorna DataSet. 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] <mailto:post%40joaomorais.com.br> >: > 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] >> <mailto: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 <mailto:delphi-br%40yahoogrupos.com.br> >>> 40yahoogrupos.com.br> [mailto: >>> delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.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 <mailto:delphi-br%40yahoogrupos.com.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] >>> <mailto:djpardalrocha%40hotmail.com> > >> djpardalrocha%40hotmail.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 <mailto:delphi-br%40yahoogrupos.com.br> >>>> 40yahoogrupos.com.br>>> delphi-br%40yahoogrupos.com.br > >>> >>>> From: [EMAIL PROTECTED] <mailto:fellipeh%40gmail.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> > 2540gmail.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] <mailto:fellipeh%40gmail.com> > 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> Sou a favor da lei LEI 607/2007 [As partes desta mensagem que não continham texto foram removidas] __________________________________________________________ Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o Messenger! É GRÁTIS! http://www.msn.com.br/emoticonpack [As partes desta mensagem que não continham texto foram removidas]