Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » UltraLite - Datenbankverwaltung » UltraLite-Datenbankreferenz » UltraLite-Dienstprogramme

 

UltraLite-Dienstprogramm für den SQL-Präprozessor (sqlpp)

Erledigt die Vorverarbeitung eines C-/C++-Programms, das Embedded SQL (ESQL) enthält, sodass der für dieses Programm erforderliche Code vor dem Aufruf des Compilers generiert werden kann. Beachten Sie, dass die untenstehende Tabelle aus Vollständigkeitsgründen die gesamte Menge der Befehlszeilenoptionen beschreibt, die für UltraLite einzig relevanten Optionen indessen -eu und -wu sind.

Syntax
sqlpp -u [ Parameter ] ESQL_Dateiname [ Ausgabedateiname ]
Option Beschreibung
-d Generiert Code, der die Datenspeichergröße verringert, aber die Codegröße erhöht. Datenstrukturen werden vor der Verwendung zur Ausführungszeit wieder benutzt und initialisiert.
-e Stufe

Diese Option kennzeichnet jedes Static Embedded SQL-Element als Fehler, das nicht Teil eines angegebenen Standards ist. Der Wert Stufe gibt den zu verwendenden Standard an. Beispiel: sqlpp -e c03 ... kennzeichnet alle Syntaxelemente, die nicht Teil des SQL/2003-Kernstandards sind.

Die folgenden Werte sind für Stufe zulässig:

  • c03   Kennzeichnet Syntax, die nicht SQL/2003-Kernsyntax ist

  • p03   Kennzeichnet Syntax, die nicht Full-SQL/2003-Syntax ist

  • c99   Kennzeichnet Syntax, die nicht SQL/1999-Kernsyntax ist

  • p99   Kennzeichnet Syntax, die nicht Full-SQL/1999-Syntax ist

  • e92   Kennzeichnet Syntax, die nicht Entry-Level der SQL/1992-Syntax ist.

  • i92   Kennzeichnet Syntax, die nicht Intermediate-Level der SQL/1992-Syntax ist.

  • f92   Kennzeichnet Syntax, die nicht Full-SQL/1992-Syntax ist.

  • t   Kennzeichnet Nicht-Standard-Hostvariablentypen

  • u   Kennzeichnet Syntax, die nicht von UltraLite unterstützt wird

Für die Kompatibilität mit früheren Versionen von SQL Anywhere können Sie auch e, i und f angeben, die e92, i92 bzw. f92 entsprechen.

-h Breite Begrenzt die maximale Länge von getrennten Ausgabezeilen durch sqlpp in der .c-Datei auf Breite . Am Ende von getrennten Zeilen werden Backslashes hinzugefügt, sodass ein C-Compiler die getrennten Zeilen als eine durchgängige Zeile analysieren kann. Der Standardwert ist keine maximale Zeilenlänge (Ausgabezeilen werden standardmäßig nicht unterteilt).
-k Teilt dem Präprozessor mit, dass das zu kompilierende Programm eine Benutzerdeklaration von SQLCODE enthält
-n

Generiert Zeilennummerinformationen in der C-Datei, wobei #line-Direktiven an den betreffenden Positionen im generierten Code verwendet werden.

Verwenden Sie diese Option, um die Quelle in den entsprechenden Zeilenzahlen in der Datei ESQL_Dateiname und nicht in der Datei Ausgabedateiname zu untersuchen und Quellfehler dort zu melden.

-o BS-Angabe Für UltraLite nicht anwendbar.
-q Führt das Dienstprogramm im stillen Modus aus. Informative Banner, Versionsnummern und Statusmeldungen werden unterdrückt. Fehlermeldungen werden jedoch weiter angezeigt.
-r Für UltraLite nicht anwendbar.
-s Zeichenfolgenlänge Setzt die maximale Größe für Zeichenfolgen fest, die der Präprozessor in die C-Datei ausgibt. Zeichenfolgen, die länger als dieser Wert sind, werden mithilfe einer Liste von Zeichen initialisiert ('a','b','c' etc.). Die meisten C-Compiler sind in der Größe der Zeichenfolgenliterale begrenzt, die Sie handhaben können. Mit dieser Option wird die obere Grenze festgesetzt. Der Standardwert ist 500.
-u Für UltraLite erforderlich. Generiert eine Ausgabe, die speziell für UltraLite-Datenbanken erforderlich ist.
-w Stufe

Nicht-konforme SQL-Syntax als Warnung kennzeichnen. Der Wert Stufe gibt den zu verwendenden Standard an. Beispiel: sqlpp -w c03 ... kennzeichnet alle SQL-Syntaxelemente, die nicht Teil der SQL/2003-Kernsyntax sind.

Die folgenden Werte sind für Stufe zulässig:

  • c03   Kennzeichnet Syntax, die nicht SQL/2003-Kernsyntax ist

  • p03   Kennzeichnet Syntax, die nicht Full-SQL/2003-Syntax ist

  • c99   Kennzeichnet Syntax, die nicht SQL/1999-Kernsyntax ist

  • p99   Kennzeichnet Syntax, die nicht Full-SQL/1999-Syntax ist

  • e92   Kennzeichnet Syntax, die nicht Entry-Level der SQL/1992-Syntax ist.

  • i92   Kennzeichnet Syntax, die nicht Intermediate-Level der SQL/1992-Syntax ist.

  • f92   Kennzeichnet Syntax, die nicht Full-SQL/1992-Syntax ist.

  • t   Kennzeichnet Nicht-Standard-Hostvariablentypen

  • u   Kennzeichnet Syntax, die nicht von UltraLite unterstützt wird

Für die Kompatibilität mit früheren Versionen von SQL Anywhere können Sie auch e, i und f angeben, die e92, i92 bzw. f92 entsprechen.

-x Ändert Mehrbyte-Zeichenfolgen in Escape-Sequenzen, sodass sie vom Compiler verarbeitet werden können.
-z Kollatierungssequenz Legt die Kollatierungssequenz fest.
Bemerkungen

Dieser Präprozessor konvertiert die SQL-Anweisungen in der Eingabedatei in C/C++. Er schreibt das Ergebnis in die Ausgabedateiname. Die normale Dateinamenerweiterung für Quelldateien in Embedded SQL ist sqc. Der Standard-Ausgabedateiname ist der Basisname von esql-Dateiname mit der Erweiterungc. Wenn der esql-Dateiname jedoch bereits die Erweiterung .c hat, ist die Standarderweiterung für die Ausgabe .cc.

Die Kollatierungssequenz hilft dem Präprozessor, die Zeichen zu verstehen, die im Quellcode oder Programm verwendet werden, z.B. bei der Identifizierung von alphabetischen Zeichen, die für die Verwendung in Bezeichnern geeignet sind. In UltraLite umfassen Kollatierungen eine Codepage sowie eine Sortierreihenfolge. Wenn Sie -z nicht angeben, versucht der Präprozessor, eine geeignete Kollatierung für das Betriebssystem zu ermitteln.

Sie können eine Liste der unterstützten Kollatierungen (und der entsprechenden Codepage) anzeigen, indem Sie an der Eingabeaufforderung ulcreate -l ausführen.

Tipp

Der SQL-Präprozessor (sqlpp) ist in der Lage, statische SQL-Anweisungen in einer eingebetteten SQL-Anwendung zur Kompilierungszeit zu kennzeichnen. Diese Funktion kann besonders beim Entwickeln einer UltraLite-Anwendung nützlich sein, um SQL-Anweisungen auf UltraLite-Kompatibilität zu prüfen. Sie können die Kompatibilität von SQL sowohl für SQL Anywhere als auch für UltraLite-Anwendungen mithilfe der Optionen -e bzw. -w testen. Einen Überblick über den SQL Flagger finden Sie unter SQL-Kompatibilität mithilfe des SQL Flagger prüfen.

Siehe auch
Beispiel

Der folgende Befehl bearbeitet die Embedded SQL-Datei srcfile.sqc im dialogfreien Betrieb für eine UltraLite-Anwendung vor.

sqlpp -u -q MyEsqlFile.sqc