Freigeben über


SQLBindCol

Berücksichtigen Sie stets die Auswirkungen beim Einsatz von SQLBindCol zur Datenkonvertierung. Bindungskonvertierungen sind Clientprozesse. Wenn Sie beispielsweise einen Gleitkommawert, der an eine Zeichenspalte gebunden ist, abrufen, führt der Treiber die Gleitkomma-in-Zeichen-Konvertierung lokal durch, wenn eine Zeile abgerufen wird. Die Transact-SQL CONVERT-Funktion kann zum Übertragen der Kosten einer Datenkonvertierung auf den Server verwendet werden.

Eine Instanz von SQL Server kann mehrere Sets an Ergebniszeilen bei einer einzelnen Anweisungsausführung zurückgeben. Jedes Resultset muss getrennt gebunden sein. Weitere Informationen zum Binden für mehrere Resultsets finden Sie unter SQLMoreResults.

Der Entwickler kann Spalten an SQL Server-spezifischen C-Datentypen mit dem TargetType-Wert SQL_C_BINARY binden. An SQL Server-spezifische Typen gebundene Spalten sind nicht übertragbar. Die definierten SQL Server-spezifischen ODBC-C-Datentypen entsprechen den Typdefinitionen für DB-Library, und DB-Library-Entwickler, die Anwendungen übertragen, können diese Funktion nutzen.

Berichterstattung über die Datenabschneidung ist ein kostengünstiger Prozess für den SQL Server Native Client ODBC-Treiber. Sie können das Abschneiden vermeiden, indem Sie sicherstellen, dass alle gebundenen Datenpuffer weit genug sind, um Daten zurückzugeben. Bei Zeichendaten sollte die Breite ausreichend Platz für ein Zeichenfolgeabschlusszeichen bieten, wenn das Standardtreiberverhalten für den Zeichenfolgenabschluss verwendet wird. Das Binden einer SQL Server char(5)-Spalte an ein Array mit fünf Zeichen verursacht beispielsweise eine Abschneidung jedes abgerufenen Werts. Wenn Sie die gleiche Spalte an ein Array mit sechs Zeichen binden, wird die Abschneidung vermieden, indem ein Zeichenelement bereitgestellt wird, in dem das Null-Abschlusszeichen gespeichert werden soll. SQLGetData kann zum effektiven Abrufen langer Zeichen und binärer Daten ohne Abschneidung verwendet werden.

Wenn der vom Benutzer bereitgestellte Puffer nicht groß genug ist, um den gesamten Wert der Spalte zu umfassen, wird bei großen Wertdatentypen SQL_SUCCESS_WITH_INFO zurückgegeben und die Warnung "Zeichenfolgendaten werden rechts abgeschnitten" wird ausgegeben. Das StrLen_or_IndPtr-Argument enthält die Anzahl der im Puffer gespeicherten Zeichen/Bytes.

SQLBindCol-Unterstützung für verbesserte Funktionen für Datum/Uhrzeit

Ergebnisspaltenwerte vom Datums- bzw. Uhrzeit-Typ werden konvertiert, wie in Konvertierungen von SQL in C beschrieben. Beachten Sie, dass zum Abrufen von time- und datetimeoffset-Spalten als entsprechende Strukturen (SQL_SS_TIME2_STRUCT und SQL_SS_TIMESTAMPOFFSET_STRUCT) TargetType als SQL_C_DEFAULT oder SQL_C_BINARY angegeben werden muss.

Weitere Informationen finden Sie unter Datums-/Uhrzeitverbesserungen (ODBC).

SQLBindCol-Unterstützung für große CLR-UDTs

SQLBindCol unterstützt große benutzerdefinierte CLR-Typen (UDTs). Weitere Informationen finden Sie unter Große benutzerdefinierte CLR-Typen (ODBC).

Siehe auch

Konzepte

ODBC-API-Implementierungsdetails

Andere Ressourcen

SQLBindCol-Funktion