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) » SQL Anywhere Server - Programmierung » SQL Anywhere Datenzugriff-APIs » SQL Anywhere Embedded SQL » Hostvariable verwenden

 

Hostvariable deklarieren

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.

Beispiel

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.