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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - Programmierung » Embedded SQL » Static und Dynamic SQL

 

Dynamic SQL-Anweisungen

In C werden Zeichenfolgen in Zeichen-Arrays gespeichert. Dynamische Anweisungen werden in C-Zeichenfolgen konstruiert. Diese dynamischen Anweisungen können dann mit der PREPARE-Anweisung und der EXECUTE-Anweisung ausgeführt werden. Solche SQL-Anweisungen können Hostvariablen nicht in der gleichen Weise ansprechen wie statische Anweisungen, denn auf C-Variable kann nicht über den Namen zugegriffen werden, solange das C-Programm ausgeführt wird.

Um Informationen zwischen dynamischen SQL-Anweisungen und C-Variablen auszutauschen, wird eine Datenstruktur namens SQL-Deskriptorbereich (SQL Descriptor Area - SQLDA) verwendet. Diese Struktur wird vom SQL-Präprozessor erzeugt, wenn Sie bei der EXECUTE-Anweisung in der USING-Klausel eine Liste von Hostvariablen spezifizieren. Jeder Variablen entspricht jeweils ein Platzhalter in der vorbereiteten Anweisung, zugeordnet über die Position.

Hinweise zum SQLDA-Bereich finden Sie unter Der SQL-Deskriptor-Bereich (SQLDA).

Ein Platzhalter wird in die Anweisung eingefügt, um anzuzeigen, wo auf Hostvariablen zugegriffen wird. Ein Platzhalter ist entweder ein Fragezeichen (?) oder eine Referenz auf eine Hostvariable wie in statischen Anweisungen (ein Hostvariablen-Name mit einem vorangestellten Doppelpunkt). Im letzteren Fall dient der Name der Hostvariable, der im Text der Anweisung benutzt wird, nur als Platzhalter für eine Referenz auf den SQL-Deskriptorbereich.

Eine Hostvariable, mit der Informationen an die Datenbank übergeben werden, wird eine Bindevariable genannt.

 Beispiel
 SQLDA-Inhalt
 Indikatorvariablen und NULL
 Siehe auch