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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |