Tipo SQL de ODBC para parámetros con valores de tabla

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Un nuevo tipo de SQL de ODBC, SQL_SS_TABLE, proporciona compatibilidad con parámetros con valores de tabla.

Comentarios

SQL_SS_TABLE no se puede convertir en ningún otro tipo de datos ODBC o SQL Server.

Si SQL_SS_TABLE se usa como un tipo de datos C en el parámetro ValueType de SQLBindParameter, o se intenta establecer SQL_DESC_TYPE en un registro descriptor de parámetros de aplicación (APD) en SQL_SS_TABLE, se devuelve SQL_ERROR y se genera un registro de diagnóstico con SQLSTATE=HY003, "Tipo de búfer de aplicación no válido".

Si SQL_DESC_TYPE está establecido en SQL_SS_TABLE en un registro IPD y el registro del descriptor de parámetros de la aplicación correspondiente no es SQL_C_DEFAULT, se devuelve SQL_ERROR y se genera un registro de diagnóstico con SQLSTATE=HY003, "Tipo de búfer de aplicación no válido". Esto puede ocurrir con parameterType de sqlSetDescField, SQLSetDescRec o SQLBindParameter.

Si el parámetro TargetType se SQL_SS_TABLE al llamar a SQLGetData, se devuelve SQL_ERROR y se genera un registro de diagnóstico con SQLSTATE=HY003, "Tipo de búfer de aplicación no válido".

Una columna de parámetro con valores de tabla no se puede enlazar como tipo SQL_SS_TABLE. Si se llama a SQLBindParameter con ParameterType establecido en SQL_SS_TABLE, se devuelve SQL_ERROR y se genera un registro de diagnóstico con SQLSTATE=HY004, "Tipo de datos SQL no válido". Esto también puede ocurrir con SQLSetDescField y SQLSetDescRec.

Los valores de las columnas de parámetros con valores de tabla tienen las mismas opciones de conversión de datos que las columnas de parámetros y resultado.

Un parámetro con valores de tabla solo puede ser un parámetro de entrada en SQL Server 2008 (10.0.x) o posterior. Si se intenta establecer SQL_DESC_PARAMETER_TYPE en un valor distinto de SQL_PARAM_INPUT a través de SQLBindParameter o SQLSetDescField, se devuelve SQL_ERROR y se agrega un registro de diagnóstico a la instrucción con SQLSTATE=HY105 y el mensaje "Tipo de parámetro no válido".

Las columnas de parámetros con valores de tabla no pueden utilizar SQL_DEFAULT_PARAM en StrLen_or_IndPtr, porque los valores predeterminados por fila no se admiten con los parámetros con valores de tabla. En su lugar, una aplicación puede establecer el atributo de columna SQL_CA_SS_COL_HAS_DEFAULT_VALUE en 1. Esto significa que la columna tendrá los valores predeterminados para todas las filas. Si StrLen_or_IndPtr se establece en SQL_DEFAULT_PARAM, SQLExecute o SQLExecDirect devolverán SQL_ERROR y se agregará un registro de diagnóstico a la instrucción con SQLSTATE=HY090 y el mensaje "Cadena o longitud del búfer no válidos".

Consulte también

Parámetros con valores de tabla (ODBC)