Artigo Clube Delphi Edição 7- Paradox Resistirá ao Bug do Milênio?

Artigo da Revista Clube Delphi Edição 7.

Esse artigo faz parte da revista Clube Delphi edição 7. Clique aqui para ler todos os artigos desta edição


Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

Paradox Resistirá ao Bug do Milênio?

 

Aproveitando a época e a euforia geral sobre o assunto, acabei por decidir realizar esta matéria. Apesar de nós, técnicos de informática, minimizamos as conseqüências que a mídia está atribuindo ao bug, estou com um pouco de preocupação sobre o problema. Afinal de contas, estamos num país onde a infra-estrutura tecnológica é precária e mal-resolvida, e qualquer pequeno inconveniente causa problemas sérios, como blackouts de nível nacional, transferências bancárias e outras anomalias. Quem não se lembra do preview de nosso bug do milênio, o das telefônicas. O simples fato de acrescentar dois dígitos aos códigos de telefone causou a paralisia total no sistema telefônico nacional, durante praticamente uma semana. É ou não é para ficar receoso?

Mas vamos ao que interessa. Nos últimos meses recebemos alguns e-mails sobre a possibilidade do paradox estar vulnerável ao bug-show-mídia do milênio. Alguns detectores do bug realmente apontam o ingênuo .DB como ameaça global. No início não tinha dado muita importância ao tema, mas como o volume de e-mails sobre o assunto aumentou, decidi estudar o fato e descobrir se o problema realmente existia.

Comecei com procedimentos básicos. Configurei corretamente o meu windows para data com oito dígitos e coloquei-me a testar. Aparentemente, tudo OK. Digitei algo como 01/01/2000, salvei, fechei e abri a tabela. O 2k estava lá. Fiz o mesmo com várias datas, e nenhuma foi alterada. Aí resolvi ir mais a fundo: como o help do Database Desktop não informa a quantidade de bytes necessários para um campo do tipo data, decidi dar uma olhada no arquivo com um visualizador hexadecimal, para enxergar o que realmente estava sendo gravado. Na preguiça de criar o meu próprio visualizador em Delphi, pluguei o micro na grande teia e perdi algumas horas procurando o meu favorito, o XTGold. Após instalá-lo, abri o arquivo .DB e constatei o fato: a data é gravada com quatro bytes, e portanto, armazena fisicamente os quatro dígitos do ano. Fiz o teste com várias datas. As informações a seguir exemplificam melhor:

 

A data – 01/01/1900, é gravada como 80-0A-95-5C.

 

A data  01/01/200, foi gravado como 80-0B-24-08. Completamente diferente do ano de 1900.

Outros testes também foram realizados – datas do século XV apresentaram valores diferentes. A próxima geração está livre de problemas – o ano 3000 foi salvo como 80-10-B6-C3.

Certamente, para que a segurança possa ser garantida ao cliente, o sistema operacional deverá estar livre de problemas. O hardware também, pois ele será o fornecedor da data para o SO. Existem vários programas de detenção de problemas com o hardware e SO disponíveis na Internet. A versão do paradox utilizada foi a 7, com BDE 5.10, sobre Windows NT. Para quem quiser simular os testes realizados, o XTGold está disponível para Download em nossa Homepage, no endereço http://www.clubedelphi.com.br/revista/edicao7/xtgold.zip.

Agradeço os que nos acompanharam e desejo um ótimo natal e ano novo para todos. E para quem vai ficar de plantão na virada e resolver dar uma rápida saída do escritório para acompanhar o estouro de fogos, não se esqueça: só desça o prédio utilizando a escada.

Artigos relacionados