Migrando do SQL Direct 2.x para o 4.x

Publicado por Marcos Dell Antonio em 26/10/2006 | Delphi

Nessa semana tive a oportunidade de migrar uns sistemas que utilizavam o SQL Direct 2.x para a versão 4.x.

Só para deixar registrado, segue abaixo uma lista de “problemas” que encontrei:

- Propriedade Preservation

A propriedade Preservation foi removida dos componentes TSDQuery. Desta forma, os DFMs que declaravam ela tiverem que ser atualizados. Bastou abrir o form e o Delphi já identificou o erro exibindo a seguinte mensagem:

Como pode ser visto, basta clicar em Ignore para que o próprio Delphi remova as referências à propriedade Preservation;

- UpdateObject

Muitas rotinas de acesso ao banco de dados faziam o seguinte:

1 ordensServico.First; 2 while (not(ordensServico.Eof)) do 3 begin 4 if (...) then 5 ordensServico.Delete 6 else 7 ordensServico.Next; 8 end;

Depois da atualização, para utilizar o Delete precisei definir a propriedade UpdateObject da TSDQuery, caso contrário o seguinte problema ocorria:

Já que toda a criação de queries passa por uma rotina de uma classe base, a alteração foi simples:

1 class procedure TFuncoesClass.CriaQuery(var query: TSDQuery; 2 dataBase: TSDDatabase; useUpdateSQL: boolean); 3 begin 4 query := TSDQuery.Create(nil); 5 query.DatabaseName := dataBase.DatabaseName; 6 query.SessionName := dataBase.Session.SessionName; 7 8 if (useUpdateSQL) then 9 query.UpdateObject := TSDUpdateSQL.Create(nil); 10 11 query.Close; 12 query.SQL.Clear; 13 end;

A rotina antiga não tinha o parâmetro useUpdateSQL e, conseqüentemente, as linhas 8 e 9 também não.

Uma observação interessante a ser feita é que não é necessário definir nenhum comando SQL para o objeto TSDUpdateSQL. O simples fato de atribuí-lo à query já resolve o problema.

- Método TDBSession.GetTableFieldNames

O método GetTableFieldNames da classe TDBSession teve seu nome alterado para GetFieldNames. Isso gerou um erro de compilação. No entanto, foi corrigido facilmente, pois os parâmetros continuam os mesmos.

Concluindo, a atualização para a versão 4.x foi razoavelmente simples. Em 1 dia os sistemas já estavam rodando e executando todas as funções sem problema algum.

É isso aí! T+

Deixe o seu comentário

Anúncios

Anúncio provido pelo BuscaPé