OnCascade delete é uma clausula de FK no banco de dados e não  um metodo do DSP

[]s

Walter Alves Chagas Junior
Projeto e desenvolvimento de sistemas
Telemont Engenharia de telecomunicações S/A
Belo Horizonte - MG - Brasil
[EMAIL PROTECTED]
Fone: (31) 3389-8217 Fax: (31) 3389-8215



-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
nome de Ricardo César Cardoso
Enviada em: quarta-feira, 9 de maio de 2007 08:35
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: RES: [delphi-br] Apagar master-detail


OK Magnum, entendido. Mas fiquei com a pulga atrás da orelha... Não achei o 
"OnCascadeDelete" no TDataSetProvider... mas deixa pra lá, era só curiosidade 
mesmo.

Como prometido aqui vai o prometido para a exclusão de details em relações 
"Mestre/Detalhes" extraido da edição n°3 (Maio/2004) da revista "ActiveDelphi" 
- Artigo "Trabalhando com ClientDataSet" de Eduardo Rocha:

[citação]
4 - Quando Excluo um registro no ClientDataSet "Master", os registros no 
ClientDataSet "Detail" serão excluídos automaticamente?

Não, isso deverá ser feito manualmente. Normalmente coloco o seguinte código no 
evento BeforeDelete do ClientDataSet "Master":

  [codigo]
  with ClientDataSetDetail do
    while not IsEmpty do Delete;
  [/codigo]

O Provider possui uma opção de exclusão em cascata, mas isso só resolve no caso 
do banco suportar e de ter sido definido na foreign key.
[/citação]

Pois é... até aqui o Eduardo Rocha diz que existe, mas não consegui achar, 
mesmo usando FB e usando uma base de teste oferecendo o On Delete Cascade no 
Script de geração do banco.

Resumo: tb estou na dúvida.

Sds,
Ricardo.


Magnun Oliveira <[EMAIL PROTECTED]> escreveu:                                  
opa antes de mais nada naum se trata de não querer, tipo preguiça hehe
 
 Como existe OnCascadeDelete no Provider quando se usa cascade no banco, 
 simplesmente perguntei se existia uma configuração q fizesse o tal, sem o 
 cascade, para nao ficar reinventando roda.
 
 Mas como informaram q nao existe fiz algumas alterações em umas telas aqui e 
 coloquei o cascade no banco msm.
 
 Ricardo, fique a vontade se quizer mandar o exemplo, pq msm naum servindo 
 pra mim, pode vir a servir pra alguem aqui. Vlw.
 
 ----Original Message Follows----
 From: Ricardo César Cardoso <[EMAIL PROTECTED]>
 Reply-To: delphi-br@yahoogrupos.com.br
 To: delphi-br@yahoogrupos.com.br
 Subject: Re: RES: RES: [delphi-br] Apagar master-detail
 Date: Tue, 8 May 2007 16:51:13 -0300 (ART)
 
 Pois é Walter... milagre o Delphi ainda não faz...
 
 Walter Alves Chagas Junior <[EMAIL PROTECTED]> escreveu:               
                     Graaande Ricardão, o homem que mora nos armarios do 
 quarto de mulher casada....
 
 Mas o que ele nao quer, é implementar codigo. E, do jeito que voce propos, 
 ele vai ter que implementar isto do mesmo jeito :)
 
 Ai não adianta rs
 
 []s
 
 Walter Alves Chagas Junior
   Projeto e desenvolvimento de sistemas
   Telemont Engenharia de telecomunicações S/A
   Belo Horizonte - MG - Brasil
   [EMAIL PROTECTED]
   Fone: (31) 3389-8217 Fax: (31) 3389-8215
 
 -----Mensagem original-----
   De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
   nome de Ricardo César Cardoso
   Enviada em: terça-feira, 8 de maio de 2007 08:39
   Para: delphi-br@yahoogrupos.com.br
   Assunto: RE: RES: [delphi-br] Apagar master-detail
 
 Mas é claro que tem como apagar os registros Detail sem usar o OnDelete do 
 banco...
 
 Se vc associou um CDS master a um CDS detail, no evento BeforeDelete do 
 CDS master vc manda apagar os registros do Detail.
 
 Eu tenho um exemplo, mas está no meu material em casa... se ninguém te 
 passar nada, amanhã posso te passar exatamente como fazer isso, o evento e o 
 código necessário.
 
 Sds,
   Ricardo.
 
 Magnun Oliveira <[EMAIL PROTECTED]> escreveu:                      
              OK a duvida era realmente essa, se tem como apagar os detail's
    automaticamente quando excluir o registro master no cds SEM usar o On 
 delete
    cascade no banco. Mas como nao rola, vou ter q fazer no braço msm ... 
 vlw.
 
 ----Original Message Follows----
    From: "Walter Alves Chagas Junior" <[EMAIL PROTECTED]>
    Reply-To: delphi-br@yahoogrupos.com.br
    To: <delphi-br@yahoogrupos.com.br>
    Subject: RES: [delphi-br] Apagar master-detail
    Date: Mon, 7 May 2007 15:41:17 -0300
 
 Magnum,
 
 Você não pode apagar o registro master se ele tiver registros detail. 
 Para
    fazer isto automaticamente, você tem que mudar a chave estrangeira nas
    tabelas detail adicionando a cláusula On Delete Cascade nelas
 
 []s
 
 Walter Alves Chagas Junior
    Projeto e desenvolvimento de sistemas
    Telemont Engenharia de telecomunicações S/A
    Belo Horizonte - MG - Brasil
    [EMAIL PROTECTED]
    Fone: (31) 3389-8217 Fax: (31) 3389-8215
 
 -----Mensagem original-----
    De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
    nome de Magnun Oliveira
    Enviada em: segunda-feira, 7 de maio de 2007 11:53
    Para: delphi-br@yahoogrupos.com.br
    Assunto: [delphi-br] Apagar master-detail
 
 Fiz um master detail com CDS, inserção e alteração dah tudo certo, porem, 
 se
    eu for apagar um registro master com no minimo 1 detail dah esse erro:
    'cannot delete master records with details'
    se eu apagar um registro master sem nenhum detail funciona ...
 
 Alguma saca como resolver? vlw ...
 
 __________________________________________________________
    MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com
 
 --
    <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
 
 Links do Yahoo! Grupos
 
 __________________________________________________________
    MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br
 
 __________________________________________________
   Fale com seus amigos  de graça com o novo Yahoo! Messenger
   http://br.messenger.yahoo.com/
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 --
   <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
 
 Links do Yahoo! Grupos
 
 __________________________________________________
 Fale com seus amigos  de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 __________________________________________________________
 MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com
 
 
     
                  



 __________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



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

Links do Yahoo! Grupos

 

Responder a