[firebase-br] Falha ao restaurar backup

OseasTormen mentux em gmail.com
Qui Mar 13 10:28:51 -03 2008


Nao tem jeito, vai ter que preencher o campo, se nao nao vai funcionar, o 
que tu pode fazer eh buscar o campo que esta como nulo.

Nao acho que as mensagens de erro nao sejam explicativas, elas querem dizer 
muito ;)

se quiser tenho uma procedure que varre o banco em busca de inconsistencias 
com not null

segue

*****************************************
SET TERM ^ ;

CREATE PROCEDURE PP_FIND_FIELDS_NOTNULL
RETURNS (
    TABELA VARCHAR(31),
    CAMPO VARCHAR(31),
    QUANTOS INTEGER)
AS
begin
    FOR
        SELECT
            RDB$RELATIONS.RDB$RELATION_NAME
        FROM RDB$RELATIONS
        WHERE RDB$RELATIONS.RDB$SYSTEM_FLAG = 0
        ORDER BY RDB$RELATIONS.RDB$RELATION_ID
        INTO :TABELA
    DO BEGIN
        FOR
            SELECT
                RDB$RELATION_FIELDS.RDB$FIELD_NAME
            FROM RDB$RELATION_FIELDS
            WHERE RDB$RELATION_FIELDS.RDB$NULL_FLAG = 1
                  AND (RDB$RELATION_FIELDS.RDB$RELATION_NAME = :TABELA)
            ORDER BY RDB$RELATION_FIELDS.RDB$FIELD_POSITION
            INTO :CAMPO
        DO BEGIN
            EXECUTE STATEMENT 'SELECT COUNT(*) FROM '||:TABELA||' WHERE 
'||:CAMPO||' IS NULL'
            INTO :QUANTOS;
            if (QUANTOS > 0) then
                SUSPEND;
        END
    END
END^

SET TERM ; ^

GRANT EXECUTE ON PROCEDURE PP_FIND_FIELDS_NOTNULL TO SYSDBA;
*****************************************
-- 
____________________________
OseasTormen
Chapecó - SC
"Magno Machado" <magnomp.gprs em gmail.com> 
escreveu na mensagem news:frb876$59d$3 em ger.gmane.org...
Estou tentando executar backup e restore em um banco de dados que tenho
aqui. O backup é feito com sucesso, mas ao executar o restore recebo um erro
sobre validação de um campo not null. Tá, é uma inconsistencia no meu banco,
algum campo que é not null mas que por algum motivo foi gravado um registro
com null naquele campo, pelomenos é o que imagino.
Então olhei em todas as tabelas que têm o campo informado na mensagem de
erro (Seria muito bom se a mensagem informasse o nome da tabela, mas já
estou me acostumando com essas mensagens de erro pouco explicativas do
firebird...) e nenhuma tabela possui aquele campo definido como not null e
ainda um registro que foi gravado com null.

Alguém tem uma idéia de o que eu poderia fazer para resolver isso e
conseguir executar o backup/restore com sucesso?



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa







Mais detalhes sobre a lista de discussão lista