Jeder Eintrag sqlvar [i] in der Deskriptor-Struktur beschreibt die Eigenschaften eines Parameters in der dynamischen SQL-Anweisung sowie die der benötigten oder bereits zugeordneten Programmvariablen.
Jeder Eintrag sqlvar [i] besteht dabei aus folgenden Komponenten:
colname |
enthält bei einer FETCH-Anweisung den Namen der entsprechenden Tabellenspalte Bei allen übrigen SQL-Anweisungen enthält colname den Eintrag columnx , wobei x für eine fortlaufende Nummer steht. |
colio |
gibt an, ob es sich bei dem Parameter um einen Eingabe- oder Ausgabeparameter handelt sqlinppar: Eingabeparameter |
colmode |
gibt an, ob für den Parameter NULL-Werte zulässig sind colmode ist ein Byte, dessen niederwertige vier Bits als Bitmaske zu interpretieren sind. Bit 0:
Mandatory |
coltype |
gibt den SAP DB-Datentyp des Parameters an |
collength |
gibt die Länge des Parameters oder der Tabellenspalte an Bei numerischen Datentypen gibt collength die Zahl der Stellen insgesamt an. Bei allen anderen Datentypen gibt collength die Anzahl der Zeichen an. Den Wert von collength können Sie anpassen, zum Beispiel wenn sich aufgrund des abschließenden NULL-Bytes in einer Zeichenkette die Anzahl der Zeichen um 1 erhöht. |
colfrac |
gibt bei numerischen Parametern oder Tabellenspalten die Anzahl der Nachkommastellen an Für den Datentyp FLOAT/REAL ist colfrac = -1. |
hostindicator |
enthält den Indikatorwert und erfüllt damit die gleiche Aufgabe wie eine Indikatorvariable. Für Eingabeparameter kann hostindicator vom Benutzer belegt werden. Bei Ausgabeparametern fragen Sie hostindicator ab. Falls die Tabellenspalte einen NULL-Wert enthält, wird der Wert der Programmvariablen nicht überschrieben. |
hostvartype |
In hostvartype geben Sie den C/C++-Datentyp der dem Parameter zugeordneten Programmvariablen an (siehe C/C++-Datentypen in sqlvar-Einträgen) Passen Sie gegebenenfalls die Werte von collength und colfrac an. Die DESCRIBE-Anweisung initialisiert hostvartype mit dem Wert –1 (undefined). |
hostcolsize |
In hostcolsize geben Sie bei Array-Anweisungen die Größe eines Array-Elements in Bytes an. |
hostvaraddr |
In hostvaraddr geben Sie die Adresse der dem Parameter zugeordneten Programmvariablen an. Bei Array-Anweisungen geben Sie die Adresse des ersten Array-Elements an. hostvaraddr wird durch die DESCRIBE-Anweisung mit dem NULL-Wert initialisiert. |
hostindaddr |
enthält die Adresse von hostindicator Sie können stattdessen auch die Adresse einer Indikatorvariablen angeben. Dann wird der Indikatorwert in diese Variable geschrieben und der Inhalt von hostindicator ist undefiniert. Bei Array-Anweisungen geben Sie die Adresse des ersten Array-Elements der Indikatorvariablen an. Wenn Sie keinen Indikatorwert verwenden wollen, geben Sie NULL an. |
colinfo |
wird für interne Informationen zur Konvertierung der Programmvariablen benötigt Dieser Wert darf nicht verändert werden. |