[firebase-br] Erro do DBExpress, depois de migrar do FB 1.5 para o FB 2.1

Paulo - yahoo psdias2 em yahoo.com.br
Qua Jul 30 09:42:03 -03 2008


Pessoal:

Tive problemas em meu endereço de e-mail, e por isso não sei se a mensagem
abaixo chegou à lista.  Peço licença a todos para reenviar:


 Tenho um sistema feito em Delphi 7 (SETE), que rodava bem com o FireBird
 1.5,
 acessando com o DBExpress e driver InterBase

 Migrei para o FireBird 2.1, e agora está aparecendo o seguinte problema:

 a) Ao fazer algum SELECT que não tenha a cláusula WHERE (porque todos os
 dados
 da tabela são necessários naquela rotina), aparece o seguinte erro:

 SQL Error: Error mapping failed

 b) Descobri, por tentativa e erro, que se eu incluir a cláusula WHERE no
 comando,
 funciona bem:

 SELECT * FROM TBFERIADOS  WHERE DATFERIADO IS NOT NULL

 (neste caso, o campo DATFERIADO é chave, e por isso nunca é nulo - o que
 faz o comando trazer todos os dados)


 c) Isso acontece com qualquer SELECT onde não exista a cláusula WHERE
 (são vários, espalhados pelo sistema, pois há vários processos que utilizam
 TODOS os registros da tabela - geralmente são tabelas pequenas ou com dados
 temporários, por isso não tenho problema com performance em trazer todos os
 registros)

 Pergunta:
 ----------------
 - Gostaria de saber se alguém já passou por este problema, usando DBExpress
 do Delphi 7 (SETE)
 e se há alguma outra solução, além de eu ter de forçar a presença da
 cláusula WHERE em todos
 os comandos onde hoje ela não existe.   Eu digo "forçar" porque, como no
 exemplo acima,
 ela seria dispensável (tanto que, com o FireBird 1.5, esse problema não
 existia).

 Grato pela atenção de todos
 Paulo






Mais detalhes sobre a lista de discussão lista