Teilen über


Typen von Deskriptoren

Ein Deskriptor wird verwendet, um eine der folgenden Zuschreibungen zu beschreiben:

  • Ein Satz von Null oder mehr Parametern. Ein Parameterdeskriptor kann verwendet werden, um Folgendes zu beschreiben:

    • Der Anwendungsparameterpuffer, der entweder die dynamischen Eingabeargumente enthält, die von der Anwendung festgelegt wurden, oder die dynamischen Ausgabeargumente nach der Ausführung einer CALL-Anweisung von SQL.

    • Der Implementierungsparameterpuffer. Bei dynamischen Eingabeargumenten enthält dies dieselben Argumente wie der Anwendungsparameterpuffer, nachdem eine Datenkonvertierung der Anwendung angegeben werden kann. Bei dynamischen Ausgabeargumenten enthält dies die zurückgegebenen Argumente, bevor datenkonvertiert werden, die von der Anwendung angegeben werden können.

    Für dynamische Eingabeargumente muss die Anwendung einen Anwendungsparameterdeskriptor verwenden, bevor eine SQL-Anweisung ausgeführt wird, die dynamische Parametermarkierungen enthält. Für dynamische Eingabe- und Ausgabeargumente kann die Anwendung unterschiedliche Datentypen von denen im Implementierungsparameterdeskriptor angeben, um die Datenkonvertierung zu erzielen.

  • Eine einzelne Zeile mit Datenbankdaten. Ein Zeilendeskriptor kann zum Beschreiben verwendet werden:

    • Der Implementierungszeilenpuffer, der die Zeile aus der Datenbank enthält. (Diese Puffer enthalten konzeptionelle Daten, die in die Datenbank geschrieben oder gelesen werden. Die gespeicherte Form von Datenbankdaten wird jedoch nicht angegeben. Eine Datenbank kann zusätzliche Konvertierungen für die Daten aus dem Formular im Implementierungspuffer durchführen.)

    • Der Anwendungszeilenpuffer, der die Für die Anwendung dargestellte Datenzeile enthält, nach jeder Datenkonvertierung, die von der Anwendung angegeben werden kann.

    Die Anwendung wird auf dem Anwendungszeilendeskriptor ausgeführt, wenn Spaltendaten aus der Datenbank in Anwendungsvariablen angezeigt werden müssen. Um die Datenkonvertierung von Spaltendaten zu erzielen, kann die Anwendung unterschiedliche Datentypen von denen im Implementierungszeilendeskriptor angeben.

Die Beschreibungstypen werden in der folgenden Tabelle zusammengefasst.

Puffertyp Zeilen Dynamische Parameter
Anwendungspuffer Anwendungszeilendeskriptor (ARD) Anwendungsparameterdeskriptor (APD)
Implementierungspuffer Implementierungszeilendeskriptor (IRD) Implementierungsparameterdeskriptor (IPD)

Wenn die Anwendung für den Parameter oder die Zeilenpuffer unterschiedliche Datentypen in entsprechenden Datensätzen der Implementierungs- und Anwendungsdeskriptoren angibt, führt der Treiber bei Verwendung der Deskriptoren datenkonvertiert aus. Beispielsweise kann es numerische und Datetime-Werte in ein Zeichenzeichenfolgenformat konvertieren. (Gültige Konvertierungen finden Sie unter Anhang D: Datentypen.)

Ein Deskriptor kann unterschiedliche Rollen ausführen. Unterschiedliche Anweisungen können alle Deskriptoren freigeben, die die Anwendung explizit zuweist. Ein Zeilendeskriptor in einer Anweisung kann als Parameterdeskriptor in einer anderen Anweisung dienen.

Es ist immer bekannt, ob ein gegebener Deskriptor ein Anwendungsdeskriptor oder ein Implementierungsdeskriptor ist, auch wenn der Deskriptor noch nicht in einem Datenbankvorgang verwendet wurde. Für die Deskriptoren, die die Implementierung implizit zuweist, zeichnet die Implementierung die vordefinierte Zeile relativ zum Anweisungshandle auf. Jeder Deskriptor, den die Anwendung durch Aufrufen von SQLAllocHandle zuweist, ist ein Anwendungsdeskriptor.