Wenn bei einer dynamischen SQL-Anweisung mit Parametern zum Programmierzeitpunkt die angesprochenen Tabellenspalten und damit auch die benötigten Parameter noch nicht bekannt sind, dann verwenden Sie einen Deskriptor.
Das Anwendungsprogramm ermittelt zur Laufzeit die Anzahl, Datentypen und Längen der mit einer SQL-Anweisung angesprochenen Tabellenspalten und legt diese Informationen in der Struktur sqlda (SQL Descriptor Area, kurz Deskriptor) ab.
Anschließend können Sie anhand dieser Informationen den Parametern in der SQL-Anweisung die passenden Programmvariablen zuordnen.
siehe auch: Beispiel für die Verwendung des Deskriptors
Sie haben die dynamische SQL-Anweisung mit der PREPARE-Anweisung vorbereitet.
1. Initialisieren Sie den Deskriptor mit der DESCRIBE-Anweisung.
2. Ordnen Sie anhand der Informationen im Deskriptor den Parametern der dynamischen SQL-Anweisung passende Programmvariablen zu. Tragen Sie dazu die Adressen dieser Programmvariablen ebenfalls in die Deskriptor-Struktur ein.
Achten Sie darauf, dass die Programmvariablen zur Laufzeit gültige Werte enthalten.
3. Verwenden Sie die EXECUTE-Anweisung oder die OPEN CURSOR-Anweisung mit der USING-Klausel.
Ein erster Deskriptor mit dem Namen sqlda wird vom C/C++-Precompiler automatisch definiert, falls Sie den SQL-Modus INTERNAL verwenden. In anderen Modi und falls Sie weitere Deskriptoren verwenden möchten, deklarieren Sie diese als Variablen des Datentyps sqlda. Dieser Datentyp ist in der Header-Datei cpc.hdefiniert.