Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
672 Beiträge
 
FreePascal / Lazarus
 
#17

AW: Firebird Server wurde unerwartet beendet.

  Alt 13. Okt 2010, 20:02

Na bravo. Also F_STRCOPY nutzen wir nicht. Aber verschiedene andere Funktionen schon. da müsste ich jetzt mal alle (z.Zt. 956) Stored Procs durchschaun. Plus die verschiedenen Anwendungen. Das dauert ne Weile. Und den Verzicht zu predigen .... grml .... das wird dann wohl die schwerste Überzeugungsarbeit.
IBExpert hatte dochmal versprochen eigene UDFs rauszubringen Ist das noch auf der "roadmap"?
Ich hoffe das wir auf der Firebird Konferenz eine erste Version schon mal publishen können, die wird dann auf Lazarus basieren. Aufgrund der sehr vielen eingebauten Funktionen in Firebird >=2.X brauch man viele Sachen aber gar nicht mehr aus einer UDF. Welche Prozeduren du benutzt siehst du wahlweise im Dependencies Viewer in IBExpert, oder mit dem sql unten am ende dieser nachricht.

Die UDFs dann in den Stored Procs zu ersetzen ist aber vergleichsweise simpel mit ibexpert. Einfach mit tools-extract metadata die prozeduren extrahieren, Das script enthält dann alle Prozeduren mit CREATE OR ALTER im Header. Auf dieser Script Datei kannst du dann ggf im Script executive per Suchen-Ersetzen einfach alle "F_...(" durch "xxx(" ersetzen, sofern
die jeweilige F_... Funktion ein eingebautes Äquivalent hat, ist aber bei vielen Funktionen gegeben. Danach dkannst du das Script einfach im Script executive laufen lassen, weil ja nicht gedropt werden muss. Alle Prozeduren werden dann mit alter wieder eingespielt und ersetzen die alten Versionen.


hier zum Beispiel die Abhängigkeiten für F_ABS

SQL-Code:
select
distinct
D1.RDB$DEPENDENT_NAME,
D1.RDB$DEPENDED_ON_NAME
from RDB$DEPENDENCIES D1
left join rdb$relations r1 on ((D1.RDB$DEPENDENT_NAME = r1.rdb$relation_name) and (not (r1.Rdb$View_Blr is null)))
where (D1.RDB$DEPENDED_ON_TYPE = 15)
and (D1.RDB$DEPENDENT_TYPE <> 3)
and (D1.RDB$DEPENDED_ON_NAME = 'F_ABS')
union
select
distinct
f2.rdb$relation_name,
D2.RDB$DEPENDED_ON_NAME
from rdb$dependencies d2, rdb$relation_fields f2
left join rdb$relations r2 on ((f2.rdb$relation_name = r2.rdb$relation_name) and (not (r2.Rdb$View_Blr is null)))
where (d2.rdb$dependent_type = 3) and
(d2.rdb$dependent_name = f2.rdb$field_source)
and (d2.rdb$depended_on_name = 'F_ABS')
order by 1, 2
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung

Geändert von mkinzler (13. Okt 2010 um 20:09 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat