Você pode usar um ClientDataSet que possui métodos prontos para cancelar uma ou 
mais alterações feitas às tabelas e a forma de trabalhar é idêntica a qualquer 
dataset. Você só precisa comitar as alterações no fim com o método ApplyUpdates.

Gabriel.
  ----- Original Message ----- 
  From: moacirponti 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Wednesday, February 16, 2005 10:49 AM
  Subject: [delphi-br] Re: Sugestão para Tabelas Pai-Filh o?=



  O meu problema é que quando vou inserir um NOVO registro em 
  CONTASPAGAR a tabela vai estar em modo Insert, e desta forma, como 
  proceder para, por exemplo incluir as parcelas em um DBEdit, se ainda 
  não foi dado Post para gravar o registro? Mas por outro lado, se eu 
  der um Post, como fazer se o usuário quiser Cancelar a inclusão?

  --- Em delphi-br@yahoogrupos.com.br, Paulo Alexsandro 
  <[EMAIL PROTECTED]> escreveu
  > Hi,
  > 
  > vc testa antes se a tabela pai esta em mode de Edit ou
  > insert
  > 
  > só deixa iniciar o trabalho a tabela filha se a tabela
  > não estiver em nenhum desses estados
  > 
  > if Not tabela.state in [dsEdit, dsInsert] then
  > 
  > Intel +
  > Paulo Alexsandro
  > http://dprogrammer.cjb.net - Delphi & NSBasic
  > 
  >  --- moacirponti <[EMAIL PROTECTED]> escreveu: 
  > > 
  > > 
  > > Olá a todos.
  > > 
  > >   Quero sugestões para resolver um problema com
  > > tabelas pai-filho.  
  > > Uso Firebird e Delphi 6.
  > > 
  > >   O sistema que estou desenvolvendo possui duas
  > > tabelas para registro 
  > > de contas a pagar:
  > >   
  > >   1) CONTASPAGAR
  > >   2) CONTASPAGAR-PARCELAS
  > > 
  > >   A tabela CONTASPAGAR tem como chave primária o
  > > campo CODIGO, e a 
  > > tabela CONTASPAGAR-PARCELAS tem chave primária
  > > composta (CODIGO, 
  > > PARCELA), sendo que CODIGO também é chave
  > > estrangeira que referencia 
  > > CODIGO em CONTASPAGAR.
  > > 
  > >   Quando fiz um formulário para cadastrar Contas a
  > > Pagar percebi que 
  > > não poderia fazer assim:
  > > 
  > >   ContasPagar.Insert;
  > >   for i=1 to TotParcelas
  > >      begin
  > >         ContasPagarParcelas.Insert;
  > >         ContasPagarParcelas.Post;
  > >      end;
  > >   ContasPagar.Post;
  > > 
  > >   Isto porque, como não salvei o registro em
  > > CONTASPAGAR antes de 
  > > iniciar a inserção das parcelas, o CODIGO ainda não
  > > existe para ser 
  > > salvo em CONTASPAGAR-PARCELAS.
  > > 
  > >   Como fazer para contornar este tipo de problema?
  > > 
  > >   Abraços e obrigado,
  > > 
  > >   Moacir.






  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
              PUBLICIDADE
                
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



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



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a