![]() |
Datenbank: Firebird • Version: 2.52 • Zugriff über: UniDAC
[Firebird] Stored proc recompile
Hallo,
grad was interessantes gefunden in meiner DB. ich habe eine SP (Doc_Queue_Process), welches je nach Parameter andere SPs aufruft. Jetzt hatte ich einen Fehler in einer SP, welche von der SP Doc_Queue_Process aufgerufen wird. nachdem ich den Fehler gefixt habe, im Programm wieder die stelle aufgeruden um zu sehen, dass jetzt alles ok ist, aber immer noch derselbe Fehler :O Kam raus, dass ich die SP Doc_Queue_Process auch compilieren musste, damit es dann funktionierte. Ist das normal ? Gibt es da eine einstellung in Firebird, dass das nicht notwenig ist ? Danke schonmal Helge |
AW: [Firebird] Stored proc recompile
Es gibt die Funktionaltät in den Admintools, abhängige Objekte zu ermitteln bzw. alle SP neu erstellen zu laasen
|
AW: [Firebird] Stored proc recompile
Zitat:
|
AW: [Firebird] Stored proc recompile
IBExpert, Database Workbench, ...
|
AW: [Firebird] Stored proc recompile
Zitat:
|
AW: [Firebird] Stored proc recompile
Aber ermitteln welche abhängigen SPs es gibt und diese vom Skript ebenfalls neu compilieren lassen.
|
AW: [Firebird] Stored proc recompile
Eigentlich dürfte das doch wurscht sein. Wenn ich das richtig verstanden habe, haben wir hier zwei SP: A und B.
A ruft B auf. B wird verändert/korrigiert. Trotzdem tritt der Fehler beim Aufruf von A immer noch auf. Das kann und darf doch nicht sein! (Oder habe ich das Problem mißverstanden? |
AW: [Firebird] Stored proc recompile
Zitat:
|
AW: [Firebird] Stored proc recompile
Zitat:
|
AW: [Firebird] Stored proc recompile
Zitat:
Das ist ein Seiteneffekt des Mulitversioning Ansatzes. Solange man A nicht neu kompliliert, verwendet diese die "alte" Version von B. |
AW: [Firebird] Stored proc recompile
Zitat:
|
AW: [Firebird] Stored proc recompile
Zitat:
|
AW: [Firebird] Stored proc recompile
Ich würde bei einem Update eine neue, bis auf die SPs leere Db mitliefern und dann die Daten von der alten in die neue DB übernehmen.
|
AW: [Firebird] Stored proc recompile
Zitat:
|
AW: [Firebird] Stored proc recompile
Ändere schon ab und zu Stored Proc. in Firebird - Recompile musste ich noch nie machen. Ich kopiere einfach den DDL-Script in eine TIBCScript-Komponente (IBDAC) und lass den Script dann bei Bedarf ausführen.
Übrigens der Link zu den Komponenten ![]() |
AW: [Firebird] Stored proc recompile
Ich würde mir ein Synchronisationstool anschaffen, d.h. ein Tool, das ein Skript generiert, damit eine Datenbank mit Schema 'A' in eine Datenbank mit Schema 'B' umgewandelt wird, ohne die Daten zu zerstören.
Für SQL-Server verwende ich die Redgate-Tools, aber die haben sich eben auf SQL-Server eingeschossen. |
AW: [Firebird] Stored proc recompile
Das Problem hängt mit dem internen Cache von Firebird zusammen. Wenn Proc A eine Proc B aufruft, dann wird die in den cache geladen wenn Proc A ausgeführt wird. Wird Proc B geändert und neu compiliert, müsste Firebird den Cache leeren oder zumindest diese Proc B entladen oder neu laden, tut er aber nicht. Da hilft nur die Proc A zu übersetzen opder Firebird neu starten im Moment.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz