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.
BUGS - Update Pack 5.01
Conheça as soluções trazidas pela mais nova atualização do Delphi
Se você visita nossa homepage ou entra regularmente no site da Inprise, já sabe que o Delphi 5 não escapou de uma atualização. E não é apenas uma: além do UpdatePack, já existem atualizações para o pacote ADO Express, e para o TeamSource. Na página de downloads também pode ser encontrado um item bastante interessante: a tradução de strings da VCL para o francês e alemão. A página de downloads do Delphi pode ser conferida em http://www.inprise.com/devsupport/delphi/downloads/index.html#Delphi 5.
O primeiro update pack para esta versão corrige problemas dos mais diversos: acesso a dados, vcl, runtime type library, activex, entre outras. O Update Pack desta versão se encontra em três pacotes, cada um para cada versão do Delphi. Testamos apenas a correção para a versão Enterprise que funcionou muito bem. As correções observadas nesta edição se referem ao uso dos objetos ADO Express. Repare que os problemas apresentados foram corrigidos após a instalação do UpdatePack for Delphi e do Ado Express Update Pack. Vejamos as observações:
Evento OnFilterRecord
Quando um dataset ADO possui conteúdo no evento OnFilterRecord, um erro EOLEException pode ser gerado, no momento da inserção de um novo registro.
Método GetTableNames
Este método não lista o nome de views, juntamente com o nome das tabelas do banco de dados.
Redesenho de Valores
Caracteres estranhos podem aparecer em campos ADO LookUp. Isto pode acontecer em várias situações. Por exemplo, no redimensionamento dos mesmos, na inserção de novos registros ou na reordenação da tabela.
DBGRID
Este objeto possui um comportamento irregular quando conectado a um objeto ADO Dataset, que possui a propriedade CursorLocation configurada para clUseServer. Além da performance ser mais lenta, a chamada a propriedade RecordCount faz com que todos os dados sejam “fetched”, causando um violento overhead.
Master/Detail
Quem utiliza formulários Master/Detail pode ficar mais tranqüilo. No Delphi 5 original, o filtro de um master/detail era perdido quando a tabela de detalhes era fechada e reaberta, fazendo com que a tabela fosse exibida por completo.
Master/Detail II
Ao navegar por um relacionamento master/detail, o usuário ainda poderia se deparar com mais surpresas. Caso um registro vazio na tabela pai fosse encontrado, todos os registros da tabela filho seriam exibidos.
Método CancelBatch
Este método não cancela o modo de edição, sendo necessário a chamada ao método Cancel.
CancelUpdates
Conforme descrito na documentação do Delphi, este método deveria executar a mesma operação que o método CancelBatch, porém, isto não acontece.
ClearFields
Método proibido! Execute-o (sem o UpdatePack) em um Ado DataSet e receba um exceção “Invalid Variant”
CancelBatch II
Se todos os registro de uma tabela forem excluídos, e em seguida o método CancelBatch for executado, nenhum registro será exibido
Método Clear
Chamar este método através de um objeto TblobField não adianta. Nada acontece!
Lookup Fields
Havia um problema muito estranho com o uso de campos Lookup no ADO. Em alguns casos, a inserção de um registro na tabela causava um erro com a mensagem “Na unknown error has ocurred”. O curioso é que este problema era intermitente.
Tparameters
Atribuir múltiplos valores para a propriedade ParamValues de um objeto Tparameteres, causa um Access Violation
AppendRecord/InsertRecord
Estes métodos também apresentavam um comportamento no mínimo estranho. Em alguns momentos (geralmente após o fechamento e abertura de uma tabela), utilizá-los poderia causar Access Violation’s.
DBGRID II
Executar o método AppendRecord com um objeto TdbGrid conectado a uma tabela vazia pode resultar um erro “Invalid Parameter Exception”
OnFilterRecord II
Utilizar este evento e passar False para o parâmetro Accept pode causar um loop infinito.
MIDAS
Ao prover um Ado Dataset utilizando um relacionamento Master/Detail (não nested), o aplicativo pode receber um erro “Key Violation”, quando o usuário posicionar o cursor em um registro da tabela pai que não possua filhos.
Configurando Índices
Ao alterar o valor de IndexName, as propriedades indexFieldCount e IndexFields não atualizadas automaticamente.
Gravando registros
Ao gravar um registro em um Data desconectado (RDS), caracteres estranhos podem aparecer caso os campos não sejam inicializados.
Delete
Se algum erro for gerado na deleção de um registro, as operações subseqüentes também sofrerão vários erros, obrigando o usuário a reinicializar o aplicativo.
Master/Detail III
Inserir um novo registro na tabela pai causa a exibição de todos os registros da tabela filho.
RDS Connection
Fechar um projeto que contém um objeto RDSConnection e um ADO Dataset provoca um erro Access Violation.
ODBC Provider
Há um pequeno problema no uso deste motor. Quando a propriedade CommandText recebe uma isntrução SQL com parâmetros no código, ou chamado o método Parameters.Refresh, um erro “Invalid Argument Exception” é gerado.
CONCLUSÃO
Obviamente, nós recomendamos a instalação deste Update Pack. As correções não são de tanta gravidade, visto a boa estabilidade da nova versão da ferramenta. O arquivo em Inglês, para versão Enterprise, possui aproximadamente 30 megas. Não se assuste: é pequeno (o update pack para o Visual Studio possui mais de 100 mbs). Na próxima edição prosseguiremos com esta tranquilizante listagem. E não se esqueça: contribua com a comunidade, não deixe de enviar seu bug!