Bonjour à tous,
Voici le problème que je rencontre dans un écran avec 2 blocs liés par une relation, la gestion des données du premier bloc étant faites dans un écran dédié et l'écran courant permettant la gestion des données du second bloc associées à celles du premier bloc.
Les utilisateurs ont utilisé la valeur "#" comme code des données maîtres et lorsque la relation déclenche l'exécution de la requête du second bloc, une erreur FRM-40505 s'affiche. L'appui sur Shift+F1 affiche la requête en erreur telle que suit :
Si on essaye d'afficher les donnée pour les données maîtres du code "$", tout se passe bien. La même requête avec le code correspondant est la suivante (affichée dans un champ texte par LAST_QUERY du bloc) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT CPAC.COD_TYP_PER,CPAC.COD_TYP_ASS,TA.LIB_TYP_ASS,CC.lib_cou,CPAC.COD_COU,CC.COD_COU_POLICE FROM CALENDRIERS_PER_ASS_COULEUR CPAC, TYPES_ASSOCIATION TA, CALENDRIERS_COULEURS CC WHERE CPAC.cod_typ_ass = TA.cod_typ_ass and CPAC.cod_cou = CC.cod_cou and (CPAC.COD_TYP_PER ) order by CPAC.cod_typ_per, CPAC.cod_typ_ass
Auriez-vous une idée pour contourner le problème sachant que je ne peux pas modifier le code "#" utilisé depuis bien trop longtemps à bien trop d'endroits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT CPAC.COD_TYP_PER,CPAC.COD_TYP_ASS,TA.LIB_TYP_ASS,CC.lib_cou,CPAC.COD_COU,CC.COD_COU_POLICE FROM CALENDRIERS_PER_ASS_COULEUR CPAC, TYPES_ASSOCIATION TA, CALENDRIERS_COULEURS CC WHERE CPAC.cod_typ_ass = TA.cod_typ_ass and CPAC.cod_cou = CC.cod_cou and (CPAC.COD_TYP_PER='$') order by CPAC.cod_typ_per, CPAC.cod_typ_ass
Existerait-il un moyen de d'intercepter la requête avant son exécution pour un modifier le contenu (sachant que modifier le contenu du champ (en ajoutant un caractère d'échappement par exemple) ne fonctionne pas et provoque d'autres erreurs)...
Ou bien utiliser une instruction du type Set quelquechose valeur (comme lorsque l'on fait Set Escape "\" par exemple -mais pas dans ce cas là-) qui permettrait à Forms d'interpréter le caractère # différemment ???
Exit les réponses du genre : Contrôle tes champs non basés et autres joyeusetés annexes... Le problème vient bien de la donnée.
Bien à vous tous en espérant lire une solution à ce casse-tête
Cordialement
Partager