Quando a falha ocorre?
Ao tentar excluir empresa na rotina Exclusão de Empresa, ocorre a falha:
-2147467259 - Falha ao executar SQL de exclusão: [LNA][Pervasive][ODBC Engine Interface][Data Record Manager]There is a violation of the RI definitions(Btrieve Error 71)
SQL: DELETE FROM prg_empresa_compl WHERE id = ???
Referência/Erro: 45900018
Para excluir a empresa, não podem ter registros de integrações como lixo na base de dados, para isso é necessário excluir via banco de dados os registros.
Como corrigir a falha?
1 - Localize os registros que foram mantidos de lixo no sistema por meio do script na tabela prg_empresa_compl dentro da DSN ?PROEMPXX.
Select * from "prg_empresa_compl" where codigo = 'EEEE';
No exemplo abaixo, foi realizado procedimento com a empresa 1910 e o ID retornado na coluna foi o 5.
2 - Execute o script abaixo para localizar o valor da coluna lie_id na tabela lfs_integ_emp. Insira o valor do ID da empresa que foi retornado no script anterior.
Select * from "lfs_integ_emp" where lie_fk_emp = 'ID';
Copie o valor obtido na coluna lie_fk_emp.
3 - Execute o script abaixo para localizar o valor da coluna lie_id na tabela lfs_integ_layout.
Insira o valor do lie_fk_emp que foi retornado no script 2.
Select * from "lfs_integ_layout" where lil_fk_integ_emp = 'ID';
Localize o ID da coluna lie_id na coluna lil_fk_integ_emp da tabela lfs_integ_layout.
Copie o valor obtido na consulta da coluna lil_fk_integ_emp.
4 - Delete os registros encontrados na tabela lfs_integ_layout, direto no GRID após a consulta do ITEM 3 ou via script.
delete from "lfs_integ_layout" where lil_fk_integ_emp = '';
5 - Delete o Id da coluna lie_fk_emp da tabela lfs_integ_emp, direto do grid após a consulta do ITEM 2, ou via script.
delete from "lfs_integ_emp" where lie_fk_emp = '';
