Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Trigger failed
Message
From
14/07/2005 08:42:03
 
 
To
13/07/2005 21:05:36
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Miscellaneous
Thread ID:
01032391
Message ID:
01032573
Views:
25
>>Pessoal,
>>
>>Tenho a seguinte configuração em "Referencial Integrity Builder"
>>
>>ParentTable - ChildTable - Update  - Delete   - Insert - ParentTag - ChildTag
>>Vara        - Conta      - Cascade - Restrict - Ignore - var_cod   - con_varcod
>>
>>Quando eu tento inserir um registro na tabela Conta com 0 to no campo con_varcod eu ganho a seguinte mensagem: "Trigger failed in Conta"
>>
>>
>>Insert into Conta (Con_Cod, Con_VarCod, Con_Nome) values (1, 0, 'Test') && Trigger failed in Conta
>>
>>
>>Isso é um bug em "Referencial Integrity Builder" ?
>
>Pelo que entendi var_cod é a tua chave primária da tabela parent e chave segundária na tabela child. Logo, para inserir um registro na tabela child com determinado valor para var_cod este registro deve existir na tabela parent sob pena de você estar inserindo um registro filho sem pai.

Você entendeu corretamente, contudo, eu configurei a IR pra ignorar esta regra na iserção, isto é, eu posso ter um registro filho sem um registro pai correspondente. Obervei:
ParentTable - ChildTable - Update  - Delete   - Insert - ParentTag - ChildTag
Vara        - Conta      - Cascade - Restrict - Ignore - var_cod   - con_varcod
Identifiquei que há um problema na StoredProcedure gerada pelo DBC.
O erro é gerado na tentativa de execução desta linha:
unlock record pnParentRec in lcParentWkArea
Então substituí a linha acima pela abaixo e funcionou perfeitamente:
unlock record pnParentRec in (lcParentWkArea)
Bom, penso que aquela janela que permite fazer as configurações da Integridade Referencial seja um Builder(um .APP) como tantou outros que tem.
Assim, pra não precisar passar pela StoredProcedure fazendo esta correção sempre que ela for regerada quero fazer alterar o Builder que edita a Integridade Rerefencial alterando a linha onde ele manda gerar a linha com erro pra que ela seja gerada corretamente.

Mas não sei qual é o Builder que faz isso... quem sabe ?
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform