Zum Hauptinhalt springen

ProcCompile

ProcCompile(alpha1) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

Prozedur zur Laufzeit übersetzen

Details

Mit dieser Anweisung wird die in (alpha1) übergebene Prozedur übersetzt. Als Resutat wird der Fehler beim Übersetzen zurückgegeben. Bei der Rückgabe von _ErrOk konnte die Prozedur übersetzt werden. Der Fehlerwert steht ebenfalls in der Eigenschaft ErrCode zur Verfügung. Er kann mit einer der _ErrCpl...-Konstanten verglichen werden.

Ist bei der Übersetzung ein Fehler aufgetreten, können weitere Informationen über folgende Eigenschaften des System -Objekts ermittelt werden:

  • ErrCode: Fehlerwert
  • ErrText: Fehlertext
  • ErrProc: Name der übersetzten Prozedur
  • ErrSource: Name der Quelltextprozedur (kann vom Namen der übersetzten Prozedur abweichen, wenn eine Prozedur mit der Include -Anweisung eingebunden wird)
  • ErrSourceLine: Quelltextzeile in der der Fehler aufgetreten ist
  • ErrLine: Nummer der Fehlerzeile im Quelltext
  • ErrPos: Fehlerposition in der Zeile

Unter folgenden Umständen kann eine Prozedur nicht übersetzt werden:

  • Die Prozedur enthält ein with-Konstrukt.
  • Die Prozedur wird gerade ausgeführt oder ist von einem anderen Client gesperrt.
  • Die Prozedur ist keine A+ Prozedur (siehe @A+).

Falls die übersetzte Prozedur globale Datenbereiche (siehe global) enthält, dürfen diese nicht verändert werden, da die Änderungen nicht in die Runtime-Umgebung übernommen werden können und somit die Gefahr von Laufzeitfehlern bei Prozeduren, die diese Datenbereiche verwenden entsteht.

info

Falls Elemente der Prozedur geändert werden, die von anderen Prozeduren verwendet werden (andere Argumente bei Funktionen, Modifikationen von globalen Datenbereichen oder ähnliches) kann dies zu Laufzeitfehlern oder im ungünstigsten Fall zum Beenden des Clients führen. Dies gilt auch für alle anderen aktiven Clients der Datenbank, sofern diese die übersetzte Prozedur verwenden.

Sofern die übersetzte Prozedur auf anderen Arbeitsstationen aufgerufen wird, müssen in diesen Clients eventuell vorhandene ältere Codefragmente der übersetzten Prozedur aus dem Prozedurcache entfernt werden. Andernfalls können Laufzeitfehler enstehen. Dies wird mit dem Befehl ProcCacheClear () durchgeführt.