Compilerbefehle

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 2003 (Geändert)


Der in 4D integrierte Compiler übersetzt Ihre Datenbankanwendungen in Maschinensprache. Die Vorteile des Compilers sind:

Geschwindigkeit: Ihre Datenbank läuft um den Faktor von 3 bis 1 000 mal schneller.

Überprüfung des Code: Ihre Datenbank wird auf Übereinstimmung des Code geprüft. 4D Compiler findet sowohl logische als auch Syntaxfehler.

Schutz: Ist Ihre Datenbank kompiliert, können Sie den interpretierten Code löschen. Denn die kompilierte Datenbanken hat dieselben Funktionalitäten wie ihr Original. Der Unterschied ist, dass Sie nicht auf die Struktur und Prozeduren zugreifen bzw. diese verändern können, weder gewollt noch versehentlich.

Eigenständige, doppelklickbare Anwendungen: Kompilierte Datenbanken lassen sich in eigenständige Anwendungen (.EXE Dateien) umwandeln, die im Finder durch ihr eigenes Symbol dargestellt werden.

Die Befehle dieses Kapitels werden mit dem Compiler eingesetzt. Damit können Sie innerhalb Ihrer Datenbank Datentypen normieren.

C_BLOBC_INTEGERC_REALIDLE
C_BOOLEANC_LONGINTC_STRING
C_DATEC_PICTUREC_TEXT
C_GRAPHC_POINTERC_TIME

Der Befehl IDLE wird nur in kompilierten Datenbanken verwendet. Mit den anderen Befehlen deklarieren Sie Variablen und weisen einen spezifischen Datentyp zu. So vermeiden Sie zweideutige Zuweisungen. Enthält eine Anwendung Compilerbefehle, werden sie von 4D Compiler erkannt und zugewiesen. Er nimmt dann nicht den größtmöglichen Wert, also beispielsweise den Typ Text anstelle von String, wie bei einer Kompilierung ohne Compilerbefehle. Der Compiler kann oft den Datentyp von Variablen in Formularen nur schwer bestimmen. Von daher ist es besonders wichtig, Variablen in Formularen mit Compilerbefehlen zu deklarieren.

Hinweis: Um Zeit zu gewinnen, können Sie im Compiler-Fenster die Option zum Generieren und Aktualisieren von typisierten Methoden verwenden. Diese Option definiert die Anzahl der Durchgänge zum Typisieren der Variablen in der Datenbank.

Allgemeine Regeln beim Schreiben von Code, der kompiliert werden soll

Die Variablen-Indirektion wie in Version 1 von 4th Dimension ist nicht erlaubt. Sie können keine Alpha Indirektion mit dem Symbol (§) für Absatz verwenden, um indirekt auf Variablen zu verweisen. Genausowenig können Sie dafür die numerische Indirection mit den geschweiften Klammern ({...}) verwenden. Geschweifte Klammern gelten nur für den Zugriff auf spezifische Elemente eines deklarierten Array. Sie können nur die Parameter-Indirektion verwenden.

Sie dürfen den Datentyp von Variablen oder Arrays nicht ändern.

Sie dürfen ein eindimensionales Array nicht in ein zweidimensionales Array umwandeln und umgekehrt.

Sie dürfen die Länge von String Variablen oder Elementen in String Arrays nicht ändern.

Auch wenn der Compiler den Typ der Variablen für Sie festlegt, sollten Sie bei zweideutigen Datentypen, wie z.B. in einem Formular, den Datentyp der Variablen mit Compilerbefehlen deklarieren.

Durch explizites Zuweisen von Datentypen für Variablen optimieren Sie außerdem Ihren Code. Das gilt besonders bei Variablen, die als Zähler eingesetzt werden. Mit Variablen vom Typ Lange Ganzzahl erreichen Sie maximale Performance.

Wollen Sie eine Variable löschen, d.h. auf Null initialisieren, verwenden Sie den Befehl CLEAR VARIABLE mit dem Namen der Variablen. Verwenden Sie für CLEAR VARIABLE keinen String für den Namen der Variablen.

Die Funktion Undefined gibt immer den Wert Falsch zurück. Variablen sind immer definiert.

Beispiele

(1) Nachfolgend sehen Sie ein paar grundlegende Variablendeklarationen für 4D Compiler:

   C_BLOB(vxMyBlob)   
      ` Die Prozeßvariable vxMyBlob wird als Variable vom Typ BLOB deklariert
   C_BOOLEAN(<>OnWindows)   
      ` Die Interprozeßvariable <>OnWindows wird als Variable vom Typ Boolean deklariert
   C_DATE($vdCurDate)   
      ` Die lokale Variable $vdCurDate wird als Variable vom Typ Datum deklariert
   C_GRAPH(vg1;vg2;vg3)   
      ` Die 3 Prozeßvariablen vg1, vg2 und vg3 werden als Variablen 
                                       vom Typ Diagramm deklariert

(2) In folgendem Beispiel deklariert die Projektmethode OneMethodAmongOthers 3 Parameter:

      ` Projektmethode OneMethodAmongOthers 
      ` OneMethodAmongOthers ( Zahl ; Ganzzahl { ; Lang } )
      ` OneMethodAmongOthers ( Anzahl ; Prozent { ; Ratio } )

   C_REAL($1)         ` 1. Parameter ist vom Typ Zahl
   C_INTEGER($2)      ` 2. Parameter ist vom Typ Ganzzahl
   C_LONGINT($3)      ` 3. Parameter ist vom Typ Lange Ganzzahl

      ` ...

(3) In folgendem Beispiel akzeptiert die Projektmethode Capitalize einen Parameter vom Typ String und gibt ein String Ergebnis zurück:

      ` Projektmethode Capitalize
      ` Capitalize ( String ) -> String
      ` Capitalize ( Ursprungsstring ) -> String in Großbuchstaben

   C_STRING(255;$0;$1)
   $0:=Uppercase(Substring($1;1;1))+Lowercase(Substring($1;2))

(4) In folgendem Beispiel akzeptiert die Projektmethode SEND PACKETS einen Parameter vom Typ Zeit gefolgt von einer Variablenziffer von Textparametern:

      ` Projektmethode SEND PACKETS
      ` SEND PACKETS ( Zeit ; Text { ; Text2... ; TextN } )
      ` SEND PACKETS ( DokRef ; Daten { ; Daten2... ; DatenN } )

   C_TIME ($1)
   C_TEXT (${2})
   C_LONGINT ($vlPacket)

   For ($vlPacket;2;Count parameters)
      SEND PACKET ($1;${$vlPacket})
   End for

(5) In folgendem Beispiel deklariert die Projektmethode COMPILER_Param_Predeclare28 die Syntax von anderen Projektmethoden für 4D Compiler vor:

      ` Projektmethode COMPILER_Param_Predeclare28

   C_REAL(OneMethodAmongOthers;$1)   ` OneMethodAmongOthers (Zahl ; Ganzzahl { ; Lang })
   C_INTEGER(OneMethodAmongOthers;$2)   ` ...
   C_LONGINT(OneMethodAmongOthers;$3)   ` ...
   C_STRING(Capitalize;255;$0;$1)   ` In Großbuchstaben ( String ) -> String
   C_TIME(SEND PACKETS;$1)   ` SEND PACKETS ( Zeit ; Text { ; Text2... ; TextN } )
   C_TEXT(SEND PACKETS;${2})   ` ...

Referenz

C_BLOB, C_BOOLEAN, C_DATE, C_GRAPH, C_INTEGER, C_LONGINT, C_PICTURE, C_POINTER, C_REAL, C_STRING, C_TEXT, C_TIME, IDLE.


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next