Este artigo tem como objetivo orientar como solucionar o erro Falha ao excluir empresa:
-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
Resolução
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.
1- Localize os registros
Exemplo: A empresa para exclusão no GAP = 0150.
Localize o ID da empresa 0150 na tabela prg_empresa_compl
Script 1 - Select * from "prg_empresa_compl" where codigo = '0150';
O ID retornado na coluna foi o 200.
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 1.
Script 2 - Select * from "lfs_integ_emp" where lie_fk_emp = '200';
O valor do registro retornado na coluna lie_fk_emp o 33.
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.
Script 3 - Select * from "lfs_integ_layout" where lil_fk_integ_emp = '33';
Localize o ID da coluna lie_id na coluna lil_fk_integ_emp da tabela "lfs_integ_layout".
O valor do registro retornado na consulta da coluna lil_fk_integ_emp é 15.
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 = '';