Hostvariable werden definiert, indem sie in einen Deklarationsabschnitt eingefügt werden. Wie im ANSI Embedded SQL-Standard beschrieben, werden Hostvariable definiert, indem die normalen Deklarationen von C-Variablen wie folgt eingeschlossen werden:
EXEC SQL BEGIN DECLARE SECTION; /* C variable declarations */ EXEC SQL END DECLARE SECTION; |
Diese Hostvariablen können dann anstelle von konstanten Werten in jeder SQL-Anweisung verwendet werden. Wenn der Datenbankserver die Anweisung ausführt, wird der Wert der Hostvariablen benutzt. Beachten Sie, dass Hostvariable nicht anstelle von Tabellen- oder Spaltennamen verwendet werden können: Dafür ist dynamisches SQL erforderlich. Der Variablenname hat in einer SQL-Anweisung einen Doppelpunkt (:) als Präfix, um ihn von anderen Namen zu unterscheiden, die in der Anweisung erlaubt sind.
Im SQL-Präprozessor wird C-Sprachcode nur innerhalb von DECLARE SELECTION durchsucht. Daher sind innerhalb von DECLARE SECTION Initialisierungsroutinen auf Variablen zulässig, TYPEDEF-Typen und -Strukturen jedoch nicht.
Das folgende Beispiel zeigt den Gebrauch von Hostvariablen für eine INSERT-Anweisung. Variable werden vom Programm belegt und dann in die Datenbank eingefügt:
EXEC SQL BEGIN DECLARE SECTION; long employee_number; char employee_name[50]; char employee_initials[8]; char employee_phone[15]; EXEC SQL END DECLARE SECTION; /* program fills in variables with appropriate values */ EXEC SQL INSERT INTO Employees VALUES (:employee_number, :employee_name, :employee_initials, :employee_phone ); |
Ein größeres Beispiel finden Sie unter Beispiel für statischen Cursor.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |