Utilitario Corrige Integridade de Tabela HFSQL (Classic ou Client Server)
EXEMPLO DE COMO CORRIGIR A INTEGRIDADE DE UMA TABELA HFSQL (CLASSIC OU CLIENT SERVER)
A tabela com defeito esta numa subpasta da pasta exe que tem o nome: TABELA_COM_DEFEITO
Essa tabela copie para fora e substitua a tabela corrigida, em seguida execute novamente o programa no executar 01 e depois no executar 02.
Isso vai corrigir novamente a tabela com defeito de integridade. Para ter certeza que deu certo entre na tabela corrigida e adicione um novo código e vera que sera colocado com sucesso um novo ID e antes dava zero ou duplicado.
Com o comando Hdeleteall destruiu todos os problemas do arquivo e assim voltou a funcionar com a nova carga.
ERRO DE INTEGRIDADE NAO PERMITE FAZER HADD NUMA TABELA DIZ QUE O ID É ZERO OU DUPLICADO. ESSE EXEMPLO MOSTRA COMO CORRIGIR A TABELA DANIFICA DE UMA FORMA BEM SIMPLES.
BOTAO 1
Info(1)
PROGBAR_01..Value = 0
PROGBAR_01..MaxValue = HNbRec(MOVCTAR)
FOR EACH MOVCTAR
IF HExecuteQuery(QRY_MOVCTAR,hCheckDuplicates,MOVCTAR.CODI_ID) = True THEN
PROGBAR_01..Value+=1
MOV_CTAR <= MOVCTAR
MOV_CTAR.CODI_ID = MOVCTAR.CODI_ID
HAdd(MOV_CTAR,hCheckIntegrity)
END
END
Info(10)
BOTAO 2
Info(1)
HDeleteAll(MOVCTAR)
PROGBAR_02..Value = 0
PROGBAR_02..MaxValue = HNbRec(MOV_CTAR)
FOR EACH MOV_CTAR
PROGBAR_02..Value+=1
MOVCTAR.CODI_ID = MOV_CTAR.CODI_ID
MOVCTAR.CODI_EMPRESA = MOV_CTAR.CODI_EMPRESA
MOVCTAR.DATA_EMISSAO = MOV_CTAR.DATA_EMISSAO
MOVCTAR.DATA_VENCIMENTO = MOV_CTAR.DATA_VENCIMENTO
MOVCTAR.DATA_PAGTO = MOV_CTAR.DATA_PAGTO
MOVCTAR.CODI_CLIENTE = MOV_CTAR.CODI_CLIENTE
MOVCTAR.DESCRICAO_LCTO = MOV_CTAR.DESCRICAO_LCTO
MOVCTAR.NRO_DOCTO = MOV_CTAR.NRO_DOCTO
MOVCTAR.VLRS_DOCTO = MOV_CTAR.VLRS_DOCTO
MOVCTAR.CODI_TIPO_DOCTO = MOV_CTAR.CODI_TIPO_DOCTO
MOVCTAR.CODI_BCO = MOV_CTAR.CODI_BCO
MOVCTAR.CODI_CARTEIRA = MOV_CTAR.CODI_CARTEIRA
MOVCTAR.CODI_CCUSTO = MOV_CTAR.CODI_CCUSTO
MOVCTAR.CODI_CATEGORIA = MOV_CTAR.CODI_CATEGORIA
MOVCTAR.NOSSO_NRO = MOV_CTAR.NOSSO_NRO
MOVCTAR.NRO_REMESSA = MOV_CTAR.NRO_REMESSA
MOVCTAR.CHAVE_UNICA = MOV_CTAR.CHAVE_UNICA
MOVCTAR.ANEXO = MOV_CTAR.ANEXO
MOVCTAR.ANEXO2 = MOV_CTAR.ANEXO2
MOVCTAR.RECORRENTE = MOV_CTAR.RECORRENTE
MOVCTAR.TIPO_OCORRENCIA_RETORNO = MOV_CTAR.TIPO_OCORRENCIA_RETORNO
MOVCTAR.NRO_PARCELA = MOV_CTAR.NRO_PARCELA
MOVCTAR.CODI_ID_CADNOTAS = MOV_CTAR.CODI_ID_CADNOTAS
MOVCTAR.EXTRATO_CC = MOV_CTAR.EXTRATO_CC
MOVCTAR.NOME_INCLUSAO = MOV_CTAR.NOME_INCLUSAO
MOVCTAR.DATA_INCLUSAO = MOV_CTAR.DATA_INCLUSAO
MOVCTAR.NOME_ALTERACAO = MOV_CTAR.NOME_ALTERACAO
MOVCTAR.DATA_ALTERACAO = MOV_CTAR.DATA_ALTERACAO
MOVCTAR.NOME_EXCLUSAO = MOV_CTAR.NOME_EXCLUSAO
MOVCTAR.DATA_EXCLUSAO = MOV_CTAR.DATA_EXCLUSAO
HAdd(MOVCTAR,hCheckIntegrity)
END
Info(10)