L'origine de l'exception EDivByZero semble �tre dans la clause COLLATE FR_FR qui alt�re les champs de certaines tables. ce sont celles qui d�clenchent l'exception.
Pour poursuivre les tests je teste d�sormais avec un TIBDataSet et place la phrase SQL dans SelectSQL. Je produis � volont� l'exception EDivByZero en ajoutant la clause COLLATE FR_FR dans la requ�te comme suit
select MOT_ID,MOT_MOT collate FR_FR from MOT
El lisant la doc langage reference de Firebird 2.1 je vois qu'une nouvelle collation existe FR_FR_CI_AI compatible avec mon jeu de caract�res ISO_8859_1. Cette collation d�clenche le message
COLLATION FR_FR_CI_AI for ISO_8859_1 is not defined
J'ai test� le m�me code sous Delphi 7. Il fonctionne parfaitement dans le cas Collate FR_FR et produit le m�me message avec FR_FR_CI_AI.
Les tests se d�roulent sur le m�me PC (avec la m�me version de Firebird et la m�me DLL GDS32).
A tout hasard, un test a �t� fait avec la derni�re version de Firebird (2.5.1) (GDS32 6.3.1.26351) sans rien changer
Ensuite j'ai essay� sous Delphi 9 COLLATE ES_ES_CI_AI qui fait bien partie de RDB$COLLATIONS et cela d�clenche l'exception EDivByZero
Le probl�me se pr�cise mais la solution ...
A noter que le probl�me se d�pla�ant au fil des recherches il aurait plut�t sa place dans Firebird->SQL d�sormais !
Partager