SQLPutData
Die folgenden Einschränkungen gelten, wenn SQLPutData zum Senden von mehr als 65.535 Bytes 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 SQL_LONGVARCHAR (text
), SQL_WLONGVARCHAR (ntext
) oder SQL_LONGVARBINARY () Spalte verwendet wirdimage
:
Der Parameter, auf den verwiesen wird, kann der insert_value in einer INSERT-Anweisung sein.
Der Parameter, auf den verwiesen wird, kann ein Ausdruck in der SET-Klausel einer UPDATE-Anweisung sein.
Das Abbrechen einer Sequenz von SQLPutData-Aufrufen, die Daten in Blöcken für einen Server bereitstellen, auf dem SQL Server ausgeführt wird, führt bei Verwendung von Version 6.5 oder früher zu einer teilweisen Aktualisierung des Spaltenwerts. Die text
Spalte , ntext
, oder image
, auf die beim Aufruf von SQLCancel verwiesen wurde, ist auf einen zwischengeschalteten Platzhalterwert festgelegt.
Hinweis
Der SQL Server Native Client ODBC-Treiber unterstützt keine Verbindung mit SQL Server Version 6.5 und früher.
Diagnose
Es gibt einen SQL Server Native Client spezifischen SQLSTATE für SQLPutData:
SQLSTATE | Fehler | BESCHREIBUNG |
---|---|---|
22026 | Zeichenfolgendaten, nicht übereinstimmende Länge | Wenn die Länge der zu sendenden Daten in Bytes von einer Anwendung angegeben wurde, z. B. mit SQL_LEN_DATA_AT_EXEC(n), wobei n größer als 0 ist, muss die Gesamtzahl der Byte, die von der Anwendung über SQLPutData angegeben wird, der angegebenen Länge entsprechen. |
SQLPutData und Tabellenwertparameter
SQLPutData wird von einer Anwendung verwendet, wenn die Variablenzeilenbindung mit Tabellenwertparametern verwendet wird. Der parameter StrLen_Or_Ind gibt an, dass der Treiber daten für die nächste Zeile oder Zeilen von Tabellenwertparameterdaten sammeln kann, oder dass keine weiteren Zeilen 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, muss aber auf einen Wert ohne NULL festgelegt werden. Weitere Informationen finden Sie im Abschnitt zur Variablen-TVP-Zeilenbindung unter Bindung und Datenübertragung von Table-Valued Parametern und Spaltenwerten.
Wenn StrLen_Or_Ind einen anderen Wert als SQL_DEFAULT_PARAM oder eine Zahl zwischen 0 und dem SQL_PARAMSET_SIZE (d. h. den ColumnSize-Parameter von SQLBindParameter) aufweist, handelt es sich um einen 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 Funktionen für Datum/Uhrzeit
Parameterwerte von Datums-/Uhrzeittypen werden wie unter Konvertierungen von C in SQL beschrieben konvertiert.
Weitere Informationen finden Sie unter Datums- und 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 Large CLR User-Defined Types (ODBC).