Freigeben über


SQLPutData

Beim Verwenden von SQLPutData zum Senden von mehr als 65.535 Byte Daten (für SQL Server-Version 4.21a) oder 400 KB Daten (für SQL Server-Version 6.0 und höher) für eine Spalte des Typs SQL_LONGVARCHAR (text), SQL_WLONGVARCHAR (ntext) oder SQL_LONGVARBINARY (image) gelten die folgenden Einschränkungen:

  • Der Parameter, auf den verwiesen wird, kann insert_value in einer INSERT-Anweisung sein.

  • Der Parameter, auf den verwiesen wird, kann expression in der SET-Klausel einer UPDATE-Anweisung sein.

Das Abbrechen einer Sequenz von SQLPutData-Aufrufen, die einem Server, auf dem SQL Server ausgeführt wird, Daten in Blöcken bereitstellt, führt zu einer teilweisen Aktualisierung des Spaltenwerts, wenn Version 6.5 oder niedriger verwendet wird. Für die text-, ntext- oder image-Spalte, auf die beim Aufrufen von SQLCancel verwiesen wurde, wird ein Platzhalterzwischenwert festgelegt.

HinweisHinweis

Der SQL Server Native Client OLE DB-Treiber unterstützt das Herstellen einer Verbindung mit der SQL Server-Version 6.5 und niedriger nicht.

Diagnose

Es gibt einen für SQL Server Native Client spezifischen SQLSTATE für SQLPutData:

SQLSTATE

Fehler

Beschreibung

22026

Zeichenfolgendaten, nicht übereinstimmende Länge

Wenn von einer Anwendung die Länge der zu sendenden Daten in Bytes angegeben wurde, beispielsweise mit SQL_LEN_DATA_AT_EXEC(n), wobei n größer als 0 ist, muss die Gesamtanzahl von Bytes, die von der Anwendung über SQLPutData angegeben wird, mit der angegebenen Länge übereinstimmen.

SQLPutData und Tabellenwertparameter

Beim Verwenden von variabler Zeilenbindung mit Tabellenwertparametern wird SQLPutData von einer Anwendung verwendet. Der StrLen_Or_Ind-Parameter zeigt an, dass die Anwendung dafür bereit ist, dass der Treiber für die nächste(n) Zeile(n) mit Tabellenwertparameterdaten Daten sammelt, oder dass keine Zeilen mehr verfügbar sind:

  • Ein Wert größer als 0 gibt an, dass der nächste Satz von Zeilenwerten verfügbar ist.

  • Der Wert 0 gibt an, dass es keine Zeilen mehr gibt, die gesendet werden sollen.

  • Ein Wert unter 0 zeigt einen Fehler an und führt dazu, dass ein Diagnosedatensatz mit SQLState HY090 aufgezeichnet und die Meldung „Ungültige Zeichenfolge oder Pufferlänge“ ausgegeben wird.

Der DataPtr-Parameter wird ignoriert, für ihn muss jedoch ein Wert ungleich NULL festgelegt werden. Weitere Informationen finden Sie im Abschnitt „Variable Tabellenwertparameter-Zeilenbindung“ in Bindung und Datenübertragung von Tabellenwertparametern und Spaltenwerten.

Wenn StrLen_Or_Ind einen anderen Wert als SQL_DEFAULT_PARAM oder eine Zahl zwischen 0 und SQL_PARAMSET_SIZE (d. h. der ColumnSize-Parameter von SQLBindParameter) aufweist, ist dies ein Fehler. Dieser Fehler bewirkt, dass SQLPutData SQL_ERROR: SQLSTATE=HY090, "Ungültige Zeichenfolge oder Pufferlänge" zurückgibt.

Weitere Informationen zu Tabellenwertparametern finden Sie unter Tabellenwertparameter (ODBC).

SQLPutData-Unterstützung für verbesserte Features für Datum/Uhrzeit

Parameterwerte von Datum-/Uhrzeit-Typen werden konvertiert, wie in Konvertierungen von C in SQL beschrieben.

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

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

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

Änderungsverlauf

Der Inhalt wurde aktualisiert.

Es wurden Informationen zu SQLSTATE 22026 hinzugefügt.

Siehe auch

Konzepte

Andere Ressourcen