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

SAP Sybase SQL Anywhere 16.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-Variablen 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.

Ein Platzhalter wird in die Anweisung eingefügt, um anzuzeigen, wo auf Hostvariablen zugegriffen werden soll. Ein Platzhalter ist entweder ein Fragezeichen (?) oder eine Referenz auf eine Hostvariable wie in statischen Anweisungen (ein Hostvariablenname 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