![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
|
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Notwendiges UPDATE für bestehende Datenbanken | ||
![]() |
||
Da
es nun in FireBird 2.0
möglich ist, dass UDFs auch <null>
zurückliefern anstelle von 0 bzw. “leerem String”,
mußte die
Programmierung von vielen Funktionen grundlegend
geändert werden, um diesen
Rückgabemechanismus auch benutzen zu können. So ist nun z.B.
aus einem "RETURN INTEGER BY VALUE" ein "RETURN
INTEGER
FREE_IT"
geworden. Ein Ausführen von SQLs mit der neue FreeAdhocUDF-Version aber mit einer alten Deklaration, die z.B. noch einen "BY VALUE" enthält, ergibt z.B. für SELECT F_HOUR('30.11.2006 15:00:00') FROM RDB$DATABASE irgeneinen Mist - eine 8-stellige Zahl - nur nicht 15. Darum ist es unbedingt erforderlich, die alten Deklarationen gegen die Neuen auszutauschen - auch wenn man gar nicht FireBird 2.0 und/oder die Möglichkeit der Rückgabe von <null> nutzen möchte. Wenn Sie also die DECLAIR-SQLs für die Funktionen mit einer Version der FreeAdhocUDF vor der Version adhoc20061221 vorgenommen haben, müssen Sie die Funktionen löschen und neu deklarieren. Sollte dies nicht möglich sein - weil das Löschen wegen Abhängigkeiten häufig nicht geht - unbedingt die UPDATE-Scripts adhoc200612update_xxx.sql durchführen! Sie finden Sie hier im Download-Bereich. Für die UUID-Funktionen gibt es kein UPDATE-Script, Sie müssen die Deklarationen in der Datenbank löschen und dann mit den neuen DECLAIR-Scripten neu anlegen. Bei den Funktionen F_TRUNCATE und F_ROUND mussten wir den Entrypoint von truncate auf f_truncate bzw. round auf f_round ändern, um Konflikten mit Standard-Funktionen in C auszuweichen. Auch diese Änderung ist in dem UPDATE-Script enthalten bzw. in den neuen DECLARE-Scripten enthalten. In den neuen DECLAIR-Scripts sind diese Änderungen natürlich eingearbeitet. |
||
![]() ![]() ![]() ![]() ![]() |