Verschieben von Daten in Programmvariablen

Anwendungen, die auf Datenbanken von SQL Server mithilfe einer Datenbank-API zugreifen, müssen Daten zwischen Anwendungsvariablen und den folgenden Elementen verschieben:

  • Resultsetspalten

    Anwendungen müssen Daten aus den Spalten einer abgerufenen Zeile in einem Resultset in Anwendungsvariablen verschieben.

  • Rückgabecodes

    Anwendungen müssen Daten aus dem Rückgabecode einer gespeicherten Prozedur in eine Anwendungsvariable verschieben.

  • Parameter

    Anwendungen müssen Daten zwischen den Parametern gespeicherter Prozeduren und Anwendungsvariablen verschieben. Bei Parametern kann es sich um Eingabe- oder um Ausgabeparameter handeln. Aus diesem Grund kann die Datenverschiebung entweder von der Variablen zum Parameter oder vom Parameter zur Variablen erfolgen.

  • Parametermarkierungen

    ODBC- und OLE DB-Parametermarkierungen werden in SQL-Anweisungen anstelle von Eingabeausdrücken (wie z. B. in der Suchbedingung einer WHERE-Klausel) oder Parametern und Rückgabecodes gespeicherter Prozeduren verwendet. Anwendungen müssen Daten aus Anwendungsvariablen und dem durch die Parametermarkierung ersetzten Ausdruck verschieben. Weitere Informationen finden Sie unter Parametermarkierungen (Datenbankmodul).

Bindung

Zahlreiche Datenbank-APIs verwenden das Konzept der Bindung, um anzugeben, wie die Daten zwischen einer Anwendungsvariablen und dem SQL Server-Objekt verschoben werden sollen. Datenbank-APIs stellen Funktionen zur Verfügung, die eine Anwendung zum Ausführen der folgende Aufgaben aufrufen kann:

  • Ermitteln des Datentyps, der Größe, Genauigkeit und der Dezimalstellen von Resultsetspalten, Rückgabecodes, Parametern oder Parametermarkierungen. Nachdem die Anwendung diese Informationen erhalten hat, kann sie eine Variable oder ein Array von Variablen mit kompatiblen Attributen zuweisen.

  • Binden von Resultsetspalte, Rückgabecode, Parameter oder Parametermarkierung an eine bestimmte Variable oder ein Array von Variablen. Die Bindungsinformationen enthalten in der Regel folgende Angaben:

    • die Adresse und Attribute (Datentyp, Größe, Genauigkeit und Dezimalstellen) der Variablen,

    • den Namen und die Attribute des Datenbankobjekts.

Daten werden normalerweise verschoben, wenn eine der folgenden Aktionen durchgeführt wird:

  • Eine Transact-SQL-Anweisung oder ein -Batch wird ausgeführt.

    Der OLE DB-Anbieter oder ODBC-Treiber nimmt die an Eingabeparameter oder Parametermarkierungen gebundenen Daten und fügt sie in das an eine Instanz von SQL Server gesendete Paket ein.

  • Eine Resultsetzeile wird abgerufen.

    Der OLE DB-Anbieter oder ODBC-Treiber verschiebt die Daten für jede Spalte zu den gebundenen Variablen.

  • Alle Resultsets aus einer gespeicherten Prozedur wurden abgerufen oder abgebrochen.

    Der OLE DB-Anbieter oder ODBC-Treiber verschiebt die Daten für Ausgabeparameter oder Rückgabecodes zu ihren gebundenen Variablen.

Die gebundenen Anwendungsvariablen müssen nicht den gleichen Datentyp besitzen wie das SQL Server-Objekt, an das sie gebunden sind. Falls die Datentypen unterschiedlich sind, konvertiert der OLE DB-Anbieter oder ODBC-Treiber die Daten beim Verschieben. Die von den einzelnen OLE DB-Anbieter und ODBC-Treibern unterstützten Konvertierungen sind in der Dokumentation zum jeweiligen Anbieter oder Treiber angegeben.