[firebase-br] Erro de FK
tulio roversi
tulioroversi em yahoo.com.br
Qua Nov 23 11:25:04 -03 2005
Vlw Rebonatto,
Resolvi passando clear pro campo se estiver vazio antes do post.
Cristiano Rebonatto <crebonatto em upf.br> escreveu: Isso ae !!!! O IBEXepert faz alguma coisa ou tem alguma configuração que
o vazio ele não entendo como null..
Faz o seguinte teste, no GRID Data, bem embaixo na direita tem umas abas
e uma delas é FORM VIEW clica nela e no check box NULL clica nele e
grava vamos ver se funciona....
Bem, acho q seu problema está resolvido, vc descobriu que o Firebird faz
como o oracle é a ferramente que trata de maneira diferente...
tulio roversi escreveu:
>Se eu der um update na janela do SQL da certo, mas no grid de dados da pau.
>
>Cristiano Rebonatto escreveu: Vc está executando o UPDADE no ibextpert na janela do SQL ou vc está na
>parte de manutenção nos dados da tabela !!!!?????
>
>tulio roversi escreveu:
>
>
>
>>Cristiano,
>>
>> O erro q acontece e referente a opcao 2: naum consigo setar NULL para o campo CDTIPOCARTAO na tabela CLIENTE. Ele naum eh PK nem NOT NULL. Estou fazendo o teste na propria tabela pelo IBExpert portanto naum eh minha aplicacao. Q pode ser?
>> Erro: violation of Foreign Key constraint...
>> vlw.
>>
>>Cristiano Rebonatto escreveu: Vou me meter nessa !
>>
>>Não sei se entendi direito, mas vou tentar contribuir com 2 sugestões.
>>
>>1) Não sei se é bem isso :
>>Pelo que entendi vc quer mesmo que quando exista um relacionamento(uma
>>FK entre a tabela cliente e tipocartao) e este seja excluído na tabela
>>pai (tipocartao) a coluna CDTIPOCARTAO na tabela cliente seja atualizada
>>com o valor NULL ?
>>Bem se for isso vc pode tentar criar a FK com a opcao ON DELETE SET NULL.
>>
>>alter table cliente add constraint FK_CODTIPOCARTAO foreign
>>key(cdtipocartao) references TIPOCARTAO(cdtipocartao) on delete set null
>>
>>
>>2) Vc consegue tranquilamente setar NULL para o campo codtipocartao na
>>tabela cliente A NÃO SER QUE VOCÊ o tenha definido com NOT NULL ou então
>>se ele fizer parte da sua PK da sua tabela cliente.Que pela jeito não é
>>o seu caso
>> O NULL não é valor então a FK não é validada nessa situação. Agora se
>>você colocar uma valor nela, ele obrigatoriamente vai ter que existir na
>>tabela pai.
>>
>>Que erro você está recebendo que não está conseguindo executar essa ação ?
>>
>>
>>
>>
>>
>>
>>
>>tulio roversi escreveu:
>>
>>
>>
>>
>>
>>>ola RedDevil e os demais,
>>>
>>> pode deixar q naum faço mais essas perguntas indiscretas. Quanto ao erro vou explicar melhor pois o mesmo nao acontece no Oracle.
>>>Exemplo:
>>>
>>>tabela: CLIENTE TIPOCARTAO
>>>PK CDCLIENTE PK CDTIPOCARTAO
>>> NMCLIENTE NMTIPOCARTAO
>>>FK CDTIPOCARTAO NULL
>>>
>>> Se uma vez eu cadastro um cliente e informo um tipo de cartao para ele, naum posso mais apagar seu tipo de cartao (no registro da tabela cliente)? Tah claro?
>>>
>>>[]´s, Tulio.
>>>
>>>RedDevil escreveu: ola Tulio,
>>>
>>>
>>>Post By tulio roversi:
>>>
>>>
>>>
>>>
>>>
>>>
>>>>bom dia pessoal,
>>>> alguem sabe seh eh possivel fazer com q o firebird ignore o erro de FK qndo apago o conteudo de um campo q eh do tipo null referente a FK em um registro de uma tabela? Deu pra entender?
>>>>vlw.
>>>>Tulio.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>esta ja eh a segunda vez que voce posta essa mesma pergunta...
>>>
>>>eu acho que ninguem respondeu ainda devido ao que voce escreveu: "deu
>>>para entender?"...
>>>
>>>ninguem quer admitir que entendeu...
>>>;o)
>>>
>>>eu tambem nao entendi (ou entendi sem dar...;o), mas ate onde eu sei (o
>>>que nao eh muita coisa...;o), nao existe uma maneira de fazer isso sem
>>>excluir a FK...
>>>
>>>
>>>[]s
>>>força sempre!!!
>>>ate +++
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
--
+-----------------------------------------------------------+
Cristiano Rebonatto
Setor de Análise e Desenvolvimento
Divisão de Tecnologia da Informação
Universidade de Passo Fundo
Passo Fundo - RS
+-----------------------------------------------------------+
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
---------------------------------
Yahoo! Acesso Grátis: Internet rápida e grátis.
Instale o discador agora!
Mais detalhes sobre a lista de discussão lista