Eu tenho um campo em cada registro onde gravo o CRC32 do registro todo. Quando acesso o registro, verifico. Se não bater, já solto o alerto pro usuário e pára tudo.
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
Transforme todos os campos em string, some tudo e use minha função de cálculo do CRC32, disponível na minha página.
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Baixei sua função para testar.
Quando o campo for lógico e memo como fica?
Transformar number e data para string sem problemas mas lógico e memo...?
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
Se for lógico, converta para strings: "T" se TRUE ou "F" para FALSE. Ou qualquer outra coisa que possa identificar o valor. Só tem dois mesmo.
Quanto ao memo, coloque como "U", por exemplo, pra identificar como indefinido. O conteúdo do memo em si já é outra história. Não uso memo. Aliás, nunca usei. Mas também não é complicado. Você poderia, por exemplo, criar outro campo de CRC para guardar o hash do memo. Na aplicação, ao recuperar o memo, você compara e pronto. Só dá mais trabalho, mas o princípio não muda.
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Ambos são hash. Mas o MD5 é bem mais complexo e, por isso, mais lento. Ainda assim, o MD5 é o mais utilizado como finger-print de segurança, especialmente na Internet.
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
3- A propabilidade do CRC32 gerar um código repetido é mais alta que com o md5. o CRC32 se repetiu 111 vezes em um teste com um milhão de inserções simultaneas. Já o md5 não se repetiu nenhuma vez. ( http://forum.wmonline.com.br/lofiversio ... 74572.html )
Exatamente por isso o MD5 é o mais utilizado para finger-print em situações que exigem um nível de segurança maior.
Apesar de quê eu uso CRC32 normalmente, sem medo de repetição, em muitas situações. Inclusive como numerador automático de registro. Agora tem um porém: a chance de repetição se tornará tanto maior quanto menor for o tamanho das amostras. Os códigos de numeração que utilizo são pequenos. Então, após gerar o CRC32, faço uma busca pelo índice. Se já existir, repito a geração. Nunca falhou.
Portanto, como o registro de um banco de dados normalmente não é assim tão pequeno, acho o CRC32 bem aceitável. Mas se você ainda assim não se acha confortável pra usá-lo, opte pelo MD5. Também tenho esta função na forma de uma LIB.
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!