Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Unterstützung für Tabellenwertparameter wird von einem neuen ODBC-SQL-Typ, SQL_SS_TABLE, bereitgestellt.
Hinweise
SQL_SS_TABLE kann nicht in einen anderen ODBC- oder SQL Server-Datentyp konvertiert werden.
Wenn SQL_SS_TABLE im ValueType-Parameter von SQLBindParameter als C-Datentyp verwendet wird oder versucht wird, SQL_DESC_TYPE in einem Anwendungsparameterdeskriptor-Datensatz auf SQL_SS_TABLE festzulegen, wird SQL_ERROR zurückgegeben, und ein Diagnosedatensatz mit der Meldung SQLSTATE=HY003, "Ungültiger Anwendungspuffertyp" wird 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 bei dem ParameterType eines SQLSetDescField SQLSetDescRec oder einem SQLBindParameter vorkommen.
Wenn der TargetType-Parameter SQL_SS_TABLE ist und SQLGetData aufgerufen wird, wird SQL_ERROR zurückgegeben, und ein Diagnosedatensatz mit der Meldung SQLSTATE=HY003, "Ungültiger Anwendungspuffertyp" wird generiert.
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.
Bei einem Tabellenwertparameter kann es sich nur um einen Eingabeparameter in SQL Server 2008 oder höher handeln. Wenn versucht wird, SQL_DESC_PARAMETER_TYPE über SQLBindParameter oder SQLSetDescField auf einen anderen Wert als SQL_PARAM_INPUT festzulegen, wird SQL_ERROR zurückgegeben, und der Anweisung wird ein Diagnosedatensatz mit SQLSTATE=HY105 und der Meldung "Der Parametertyp ist ungültig" hinzugefügt.
Tabellenwertparameter-Spalten können SQL_DEFAULT_PARAM nicht in StrLen_or_IndPtr verwenden, 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 wird, geben SQLExecute oder SQLExecDirect SQL_ERROR zurück, und der Anweisung wird ein Diagnosedatensatz mit SQLSTATE=HY090 und der Meldung "Ungültige Zeichenfolgen- oder Pufferlänge" hinzugefügt.