Erro estranho no Firebird 1.5, Foreign Key
Olá, tenho uma tabela Conta_Receber, e nela eu coloquei dois campos FK, Cliente e Representante...
Pois bem, quando eu vou incluir um registro no Conta_Receber, e insiro os codigos do Cliente e/ou Representante ele me da o seguinte erro
[b:5eeec71bc3]
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
internal gds software consistency check (can´t continue after bugcheck).[/b:5eeec71bc3]
Os registros existem no Cliente e no Representante... o que pode ser?
segue o DDL da minha tabela:
Desde já agradeço
Fellipe H.
Pois bem, quando eu vou incluir um registro no Conta_Receber, e insiro os codigos do Cliente e/ou Representante ele me da o seguinte erro
[b:5eeec71bc3]
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
internal gds software consistency check (can´t continue after bugcheck).[/b:5eeec71bc3]
Os registros existem no Cliente e no Representante... o que pode ser?
segue o DDL da minha tabela:
CREATE TABLE CONTA_RECEBER ( IDCONTA_RECEBER INTEGER NOT NULL, DATA_VENDA DATE, VALOR_VENDA D_DINHEIRO /* D_DINHEIRO = DECIMAL(9,2) DEFAULT 0.00 */, IDVENCIMENTO INTEGER, DATA_ENTRADA DATE, VALOR_ENTRADA D_DINHEIRO /* D_DINHEIRO = DECIMAL(9,2) DEFAULT 0.00 */, IDCLIENTE INTEGER, IDREPRESENTANTE INTEGER, OBS D_OBS /* D_OBS = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */, COMISSAO_VENDEDOR DECIMAL(9,2), PRIMEIRA_VENDA SMALLINT, COMISSAO_EXTRA DECIMAL(9,2), IDPEDIDO INTEGER, STATUS CHAR(2) ); ALTER TABLE CONTA_RECEBER ADD CONSTRAINT PK_CONTA_RECEBER PRIMARY KEY (IDCONTA_RECEBER); ALTER TABLE CONTA_RECEBER ADD CONSTRAINT FK_CONTA_RECEBER_1 FOREIGN KEY (IDVENCIMENTO) REFERENCES VENCIMENTO_PARCELA (IDVENCIMENTO); ALTER TABLE CONTA_RECEBER ADD CONSTRAINT FK_CONTA_RECEBER_2 FOREIGN KEY (IDCLIENTE) REFERENCES CLIENTE (IDCLIENTE); ALTER TABLE CONTA_RECEBER ADD CONSTRAINT FK_CONTA_RECEBER_3 FOREIGN KEY (IDREPRESENTANTE) REFERENCES REPRESENTANTE (IDREPRESENTANTE);
Desde já agradeço
Fellipe H.
Titanius
Curtidas 0
Respostas
Fsflorencio
02/08/2005
Acho que seu banco tá corrompido.
passa um gfix depois faça um backup e restore que deve resolver.
passa um gfix depois faça um backup e restore que deve resolver.
GOSTEI 0
Titanius
02/08/2005
Amigo, não deu certo não... o gfix, não me mostrou nenhum erro... :-( mas mesmo assim, ainda passei o gfix e o gbak e nada... :(
Algo mais?
[]s
Algo mais?
[]s
GOSTEI 0
Fsflorencio
02/08/2005
Por acaso foi instalada alguma versão do interbase por cima do firebird ou vice-versa? Pode ser que esteja com o gds32.dll errado. Tente reinstalar removendo os arquivos que porventura estejam sobrando, inclusive os gbak e os gfix que estiverem espalhados.
GOSTEI 0
Titanius
02/08/2005
Eu não instalei... :(, descobri que este erro eh por que deu algum problema nos indices primarios e estrangeiros, ou seja, houve corrupção de informação, por problema fisico ou bug do servidor firebird... muito estranho isso... ele fala pra usar este SQL:
assim, o que estiver em branco na coluna REALINDEX, está corrompido, o problema, é que no meu não aparece nada em branco tudo certinho..
Estou maluco, será que vou ter q refazer todos os indices?
[]s
select R.RDB$CONSTRAINT_NAME, R.RDB$INDEX_NAME as REFINDEXNAME, I.RDB$INDEX_NAME as REALINDEX, I.RDB$RELATION_NAME, I.RDB$INDEX_INACTIVE from RDB$INDICES I RIGHT JOIN RDB$RELATION_CONSTRAINTS R on I.RDB$INDEX_NAME = R.RDB$INDEX_NAME where R.RDB$CONSTRAINT_TYPE = ´FOREIGN KEY´ or R.RDB$CONSTRAINT_TYPE = ´PRIMARY KEY´ order by R.RDB$CONSTRAINT_NAME
assim, o que estiver em branco na coluna REALINDEX, está corrompido, o problema, é que no meu não aparece nada em branco tudo certinho..
Estou maluco, será que vou ter q refazer todos os indices?
[]s
GOSTEI 0