Freigeben über


SQLBindCol

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Berücksichtigen Sie in der Regel die Auswirkungen der Verwendung von SQLBindCol , um die Datenkonvertierung zu verursachen. 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 verwendet werden, um die Kosten für die Datenkonvertierung auf dem Server zu platzieren.

Eine Instanz von SQL Server kann mehrere Gruppen von Ergebniszeilen für eine einzelne Anweisungsausführung zurückgeben. Jedes Resultset muss getrennt gebunden sein. Weitere Informationen zur Bindung für mehrere Resultsets finden Sie unter SQLMoreResults.

Der Entwickler kann Spalten mithilfe des TargetType-Werts SQL_C_BINARY an SQL Server-spezifische C-Datentypen binden. Spalten, die an SQL Server-spezifische Typen gebunden sind, sind nicht portierbar. Die definierten SQL Server-spezifischen ODBC C-Datentypen entsprechen den Typdefinitionen für DB-Library, und DB-Library-Entwickler, die Anwendungen portieren, möchten dieses Feature möglicherweise nutzen.

Das Abschneiden von Berichtsdaten ist ein kostspieliger 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. Beispielsweise führt das Binden einer SQL Server-Zeichenspalte (5) an ein Array von fünf Zeichen zu einem Abschneiden für jeden abgerufenen Wert. 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 verwendet werden, um lange Zeichen- und Binärdaten ohne Abschneiden effizient abzurufen.

Wenn der vom Benutzer bereitgestellte Puffer nicht groß genug ist, um den gesamten Wert der Spalte zu enthalten, wird SQL_SUCCESS_WITH_INFO zurückgegeben und die "Zeichenfolgendaten; Die Warnung "rechts abgeschnitten" wird ausgegeben. Das argument StrLen_or_IndPtr enthält die Anzahl der im Puffer gespeicherten Zeichen/Bytes.

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

Ergebnisspaltenwerte von Datums-/Uhrzeittypen werden wie in Konvertierungen von SQL in C beschrieben konvertiert. Beachten Sie, dass Zum Abrufen von Zeit- 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- und 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 "Large CLR User-Defined Types (ODBC)".

Weitere Informationen

SQLBindCol-Funktion
ODBC-API-Implementierungsdetails