![]() |
![]() ![]() ![]() |
|
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
UPDATE nécessaire pour les bases de données existantes | ||
![]() |
||
Comme il est
possible dans FireBird 2.0
que
les fonctions UDF renvoient <null> au lieu de 0 ou une
chaîne vide, il est nécessaire de revoir fondamentalement
beaucoup de fonctions pour pouvoir utiliser ce comportement de
retour.
C’est ainsi qu’on est amené à changer "RETURN INTEGER BY VALUE" en
"RETURN INTEGER FREE_IT". Si l’on exécute une fonction FreeAdhocUDF de la nouvelle version avec les anciennes déclarations (contenant encore "BY VALUE"), des erreurs sont possibles comme dans le cas suivant : SELECT F_HOUR('30.11.2006 15:00:00') FROM RDB$DATABASE donnera un nombre de 8 chiffres au lieu de 15. Il est dès lors impératif de remplacer les anciennes déclarations par les nouvelles, même si FireBird 2.0 n’est pas utilisé ou si la possibilité de sortie <null> n’est pas employée. Si les scripts de déclaration de fonctions antérieures à la version adhoc200612xx de FreeAdhocUDF ont été employées, les fonctions doivent être à supprémées et déclarées à nouveau. Si la suppression est interdite par suite de contraintes, utiliser alors les scripts UPDATE adhoc200612update_xxx.sql ! Ils sont disponibles ici Download. Pour les fonctions UUID, il n’y a pas d’UPDATE. Vous devez supprimer les fonctions déclarées et les déclarer à nouveau en utilisant le script DECLAIR. Pour la fonction F_TRUNCATE, nous devons modifier le point d’entrée (entry point) de truncate en f_truncate afin d’éviter un conflit avec une fonction standard C. Cette modification est également prise en compte dans le script UPDATE. Dans les nouveau scripts DECLAIR, ces modifications sont bien entendu incluses. |
||
![]() ![]() ![]() ![]() ![]() |