forum Ancestrologie

Ancestrologie - Plugins et Outils => BOA => Discussion démarrée par: Yves Bruant le 22 Juillet 2005 à 08:37:32

Titre: Pourquoi cette requête est-elle rejetée en Delphi ?
Posté par: Yves Bruant le 22 Juillet 2005 à 08:37:32
Bonjour,



Quelqu'un pourrait-il me dire pourquoi la requête triviale suivante

select  EV_IND_DESCRIPTION  from EVENEMENTS_IND  

where EV_IND_DESCRIPTION like 'Officier d''état%'


fonctionne bien depuis le BOA, et pas depuis EMS Manager, non plus

qu'exécutée directement depuis le code Delphi d'ailleurs !



J'obtiens le message d'erreur

arithmetic exception, numeric overflow, or string truncation

Cannot transliterate character between character sets
C'est lié à la présence de caractères accentués, ici le é.



Mon but ultime est de mettre dans la clause where (à la place de

mon exemple 'Officier d''état') un partie du champ profession

(event 'OCCU') lu dans la base pour procéder à des regroupenents

de professions, et de l'utiliser depuis Delphi, sinon je ne vous poserais

pas la question est resterais avec le BOA...



Ca me coince un peu dans la finalisation du développement de la

version 2 de CreationWeb.
Titre: Pourquoi cette requête est-elle rejetée en Delphi ?
Posté par: AquaBlue le 22 Juillet 2005 à 11:13:50
Ta requête marche dans IBExpert.

Une piste à tout hasard dans IBExpert le message d'erreur que tu obtiens, est lié à un conflit avec le jeu de caractères utilisé.

Je me souviens en avoir eu plein de message de ce type lors du passage à la base 3 en ISO8859-1

La solution était de passer en "Dialect 3"
Titre: Pourquoi cette requête est-elle rejetée en Delphi ?
Posté par: Lau le 22 Juillet 2005 à 12:37:16
Bonjour Yves,

Effectivement, il y a eu il y a fort longtemps un changement dans la base de données.

Je te renvoie au fil suivant pour plus d'infos sur ce que j'ai fait dans le BOA pour corriger le pb : http://www.ancestrologie.org/forum/index.php?topic=1621.0&postdays=0&postorder=asc&highlight=arithmetic&start=30

@+

Lau
Titre: Pourquoi cette requête est-elle rejetée en Delphi ?
Posté par: Yves Bruant le 22 Juillet 2005 à 13:11:29
Merci à tous les deux et bravo  :D



Il manquait bien



 ibd_BASE.Params.Add('lc_ctype=ISO8859_1');

dans mon composant ibd_BASE, et de toutes façons,

il y a un Params.Clear au début du code dans la Dll, au moment

de l'init du User_Name et Password, aussi j'ai ajouté la commande

d'ajout ci dessus juste après, et le croirez-vous ?



Maintenant ça marche  :!:  :D  :D



Mais je n'ai pas trouvé où l'intégrer dans le cas de l'utilisation de

EMS Manager, mais le principal est qu'enfin, 'ça marche' à partir du code.
Titre: Pourquoi cette requête est-elle rejetée en Delphi ?
Posté par: Lau le 22 Juillet 2005 à 14:00:36
Heureux d'avoir pu t'aider.

@+

Lau