Esse artigo faz parte da revista Clube Delphi edição 3. 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. 

 

Inconsistência na camada BDE

 

A nível de estabilidade, certamente a ferramenta que mais evoluiu foi o BDE. Para quem não conhece, O BDE (Borland Database Engine) é a interface de acesso a dados da Borland. Traduzindo, uma aplicação feita em alguma ferramenta da Borland (Delphi, C++ Builder, entre outras) pode acessar qualquer base de dados suportada pelo BDE, sem maiores modificações, como em um driver ODBC. Com a

evolução do Delphi e o surgimento de novas ferramentas, o BDE também cresceu,

passando a ter acessos nativos ao ORACLE, ACCESS, SQL SERVER, entre outros. Como não poderia deixar de ser, a cada nova versão do BDE, além de várias implementações, ocorre-se também a correção de bugs, tornando o acesso aos dados cada vez mais confiável. Isso quer dizer exatamente que a estabilidade do BDE 5 é maior que a do BDE 4 e anteriores. O Update Pack 4.03 também traz uma correção no BDE, chamada de 5.01 (a versão que acompanha o Delphi 4.0 é a 5.00). Daremos ênfase aos bugs corrigidos pelo BDE 5.01, ao acessar tabelas como Paradox, MS Access e DBase. Mais à frente mostraremos os bugs relativos ao acesso a gerenciadores de banco de dados.

 

Paradox

O método Open, quando feito em uma tabela com vários indíces secundários, degrada o sistema proporcionalmente a quantidade de tabelas abertas. Ou seja, se houver muitas tabelas, a performance cairá exageradamente. O método open também não se comporta bem quando as tabelas estão residindo em um servidor Novell 4.x. Quando o diretório que armazena os arquivos contém espaços, a mensagem “Invalid File Name” é gerada.

 

Data Structure Corruption Message:

 

Este erro é comumente encontrado e causa pânico: Ao executar um RollBack, após um comando Insert e um Post, a tenebrosa mensagem descrita

acima aparece. Simule o erro:

• Crie uma tabela com dois ou mais índices;

• Crie um projeto, e insira um objeto TDataBase, um TTable, um TDataSource, um TDBNavigator e um TDBGrid. Conecte-os com a nova tabela criada;

• Inicie uma transação (Database1.StartTransaction);

• Mude a indexação atual da tabela (propriedade IndexName);

• Insira um registro (Insert) e confirme (Post);

• Execute um comando RollBack e note que a mensagem de erro será gerada. Este erro também pode ser simulado no SQL Explorer.

 

Comando CAST

Este vale apenas para banco de dados locais. O comando SQL CAST, converte os tipos de dados de uma query. por exemplo:

 

select CAST(CampoInteiro as

CHAR(20)) from table

 

retornaria um valor inteiro como uma string de 20 caracteres. Existe um problema neste comando ao trabalhar com campos do tipo data. Ele retorna apenas dois dígitos para data inferiores a 01/01/2000 e retorna quatro dígitos para datas superiores a 2000.

 

MS Access

A leitura de uma tabela access degrada o sistema cada vez que é acessada. A memória vai sendo gasta para o buffer, e é incrementada toda vez que uma leitura na mesma tabela é feita.

Ou seja, se uma leitura levar 10 segundos, 10 leituras levarão vários minutos. Outro problema solucionado é relativo ao RollBack. Depois de realizar este comando em alguma tabela MS Access, os registros aparecerão em branco.

 

DBASE

Campos em branco.

O BDE não gosta de campos em branco em tabelas ACCESS - ao executar

consultas SQL do tipo NUM+10, ou DATA-DATA em campos em branco, um grande número negativo é retornado.

 

 

Os erros aqui listados foram corrigidos pelo BDE 5.01, que acompanha o Update Pack 4.03 do Delphi. Para baixá-lo, ou para maiores informações,

visite o site http://www.borland.com/delphi/del4updatecd.html.