Zum Hauptinhalt springen

local

local

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

Deklaration eines lokalen Datenbereichs

Details

Die Definition von Variablen ist unter global beschrieben.

Prozedurlokale Variable

Pro Prozedur kann nur ein lokaler Datenbereich deklariert werden. Die Gültigkeit der Variablen beschränkt sich dabei auf die Funktionen der aktuellen Prozedur.

Lebensdauer

Der prozedurlokale Datenbereich wird in dem Moment angelegt, in dem eine Funktion der Prozedur aufgerufen wird. Er bleibt solange erhalten, bis die Prozedur wieder verlassen wird.

  • Prozedur A: Prozedur B
  • FWGMDXBLOCK0001: FWGMDXBLOCK0002

Wird die Funktion 'y' in der Prozedur 'A' aufgerufen, wird der prozedurlokale Datenbereich angelegt. Jetzt ruft 'A:y' zunächst 'A:x' auf, dort wird 'B:a' aufgerufen, die wiederum 'A:z' aufruft. Dabei bleibt der am Anfang angelegte Datenbereich erhalten. Er wird erst in dem Moment wieder entfernt, wenn keine Funktion von 'A' mehr aktiv ist, in unserem Beispiel also nach dem Beenden von 'A:y'. Ein prozedurlokaler Datenbereich ist daher immer nur einmal vorhanden.

Funktionslokale Variable

Bei einer Funktion kann zusätzlich ein lokaler Datenbereich angelegt werden (sowohl bei sub als auch bei main).

Beispiel:

sub ButtonCtrl : int;

local
{
tCounter : int;
tSize : int;
}

{
...
}

Die Deklaration entspricht dabei der Deklaration prozedurlokaler Variablen. Die Gültigkeit der Variablen beschränkt sich allerdings nur auf die Funktion, in der die Deklaration steht.

Nach der Deklaration sind die Variablen mit dem Wert 0 bzw. einer Entsprechung initialisiert, d. h. alle numerischen Variablen haben den Wert 0, alphanumerische Variablen den Wert '', Zeit-Variablen 00 : 00 : 00.0 und Datumsvariablen 0.0.0.

In einem Datenbereich können maximal 4 MB zur Deklaration von Variablen verwendet werden. Wird dieser Wert überschritten, erfolgt die Fehlermeldung Datenlimit überschritten . Die Fehlermeldung kommt auch dann, wenn die Startposition einer Variable nicht innerhalb der ersten 2 MB des Bereichs liegt. Möglicherweise müssen große Arrays dynamisch angelegt werden.