Anfang des Inhaltsbereichs

Hintergrunddokumentation Funktionsweise des C/C++-Precompiler Dokument im Navigationsbaum lokalisieren

Der C/C++-Precompiler übersetzt beim Durchführen des Precompiler-Laufs die im Anwendungsprogramm eingebetteten SQL-Anweisungen in Aufrufe von Prozeduren der Precompiler-Laufzeitumgebung und bereitet den Quellcode für den C/C++-Kompilierer vor.

Dabei führt der Precompiler die folgenden Aufgaben durch:

·       Erzeugen der Deskriptor-Struktur sqlda

·       Erzeugen der Struktur sqlca für die Rückmeldungen des Datenbanksystems

·       Einbinden der Standard-Headerdatei cpc.h

·       Syntaktisches Überprüfen der eingebetteten SQL-Anweisungen

·       Erzeugen des Precompiler-Protokolls mit eventuellen Fehlermeldungen und Warnungen

Precompiler-Option check

Wenn Sie die Precompiler-Option check wählen, dann überprüft der Precompiler auch die Existenz der aufgerufenen Datenbanktabellen und Spalten sowie die Verträglichkeit der Datentypen und die Zugriffsprivilegien des Benutzers, indem er die eingebetteten SQL-Anweisungen an den Parser oder den Datenbankkern schickt. Die Wirkung aller so ausgeführten SQL-Anweisungen wird nach dem Abschluss des Precompiler-Laufs automatisch durch ein ROLLBACK wieder zurückgesetzt.

Achtung

Anweisungen mit beim Precompiler-Lauf unbekannten Komponenten, zum Beispiel dynamische SQL-Anweisungen oder CONNECT-Anweisungen mit Host-Variablen, können grundsätzlich nur syntaktisch überprüft werden.

Die SQL-Anweisungen werden in der Reihenfolge ausgeführt, in der sie im Quellcode auftreten, nicht in der logischen Reihenfolge der Programmanweisungen.

Aufbau einer Datenbankverbindung

Um die eingebetteten SQL-Anweisungen mit der Option check zu prüfen, muss der Precompiler eine Verbindung zur Datenbankinstanz herstellen. Dabei gelten die folgenden Regeln:

·       Ist die statisch erste SQL-Anweisung einer Datenbanksitzung keine CONNECT-Anweisung, dann gelten alle Benutzerangaben des XUSER-Benutzerschlüssels DEFAULT.

·       Ist die statisch erste SQL-Anweisung einer Datenbanksitzung eine CONNECT-Anweisung, werden alle Angaben dieser Anweisung und die fehlenden Angaben dem XUSER-Benutzerschlüssel DEFAULT entnommen.

·       Für die erste Datenbanksitzung können Sie alle Benutzerangaben durch entsprechende Precompiler-Optionen übersteuern.

Ende des Inhaltsbereichs