ODBC-SQL-Typ für Tabellenwertparameter
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
Unterstützung für Tabellenwertparameter wird von einem neuen ODBC-SQL-Typ, SQL_SS_TABLE, bereitgestellt.
Bemerkungen
SQL_SS_TABLE können nicht in einen anderen ODBC- oder SQL Server-Datentyp konvertiert werden.
Wenn SQL_SS_TABLE als C-Datentyp im ValueType-Parameter von SQLBindParameter verwendet wird oder versucht wird, SQL_DESC_TYPE in einem APD-Eintrag (Application Parameter Descriptor) auf SQL_SS_TABLE festzulegen, wird SQL_ERROR zurückgegeben und ein Diagnosedatensatz mit SQLSTATE=HY003, "Ungültiger Anwendungspuffertyp", generiert.
Wenn SQL_DESC_TYPE in einem IPD-Datensatz auf SQL_SS_TABLE festgelegt wird, und der entsprechende Anwendungsparameterdeskriptor-Datensatz nicht SQL_C_DEFAULT ist, wird SQL_ERROR zurückgegeben, und ein Diagnosedatensatz mit der Meldung SQLSTATE=HY003, "Ungültiger Anwendungspuffertyp" wird generiert. Dies kann mit dem ParameterType eines SQLSetDescField-, SQLSetDescRec- oder SQLBindParameter-Objekts auftreten.
Wenn der TargetType-Parameter beim Aufrufen von SQLGetData SQL_SS_TABLE wird, wird SQL_ERROR zurückgegeben und ein Diagnosedatensatz mit SQLSTATE=HY003 generiert, "Ungültiger Anwendungspuffertyp".
Eine Tabellenwertparameter-Spalte kann nicht als SQL_SS_TABLE-Datentyp gebunden werden. Wenn der SQLBindParameter -Parameter aufgerufen wird und ParameterType auf SQL_SS_TABLE festgelegt ist, wird SQL_ERROR zurückgegeben, und ein Diagnosedatensatz mit der Meldung SQLSTATE=HY004, "Ungültiger SQL-Datentyp" generiert. Dies kann auch mit SQLSetDescField und SQLSetDescRec auftreten.
Tabellenwertparameter-Spaltenwerte verfügen über dieselben Datenkonvertierungsoptionen wie Parameter und Ergebnisspalten.
Ein Tabellenwertparameter kann nur ein Eingabeparameter in SQL Server 2008 (10.0.x) oder höher sein. Wenn versucht wird, SQL_DESC_PARAMETER_TYPE auf einen anderen Wert als SQL_PARAM_INPUT über SQLBindParameter oder SQLSetDescField festzulegen, wird SQL_ERROR zurückgegeben, und der Anweisung wird ein Diagnosedatensatz mit SQLSTATE=HY105 und der Meldung "Ungültiger Parametertyp" hinzugefügt.
Tabellenwertparameter-Spalten können SQL_DEFAULT_PARAM nicht in StrLen_or_IndPtrverwenden, da Standardwerte pro Zeile nicht mit Tabellenwertparametern unterstützt werden. Stattdessen kann eine Anwendung das Spaltenattribut SQL_CA_SS_COL_HAS_DEFAULT_VALUE auf 1 festlegen. Dies bedeutet, dass die Spalte Standardwerte für alle Zeilen aufweist. Wenn StrLen_or_IndPtr auf SQL_DEFAULT_PARAM festgelegt ist, gibt SQLExecute oder SQLExecDirect SQL_ERROR zurück, und der Anweisung wird ein Diagnosedatensatz mit SQLSTATE=HY090 und der Meldung "Ungültige Zeichenfolge oder Pufferlänge" hinzugefügt.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für