Compartir a través de


SQLBindParameter

SQLBindParameterpuede eliminar la carga de la conversión de datos cuando se usa para proporcionar datos para el controlador ODBC de SQL Server Native Client, lo que da lugar a importantes mejoras de rendimiento tanto para los componentes de cliente como de servidor de las aplicaciones. Entre otras ventajas se incluyen la pérdida reducida de precisión al insertar o actualizar los tipos de datos numéricos aproximados.

Nota:

Al insertar los datos de tipo char y wchar en una columna de imagen, se usa el tamaño de los datos pasados, a diferencia del tamaño de los datos después de la conversión a un formato binario.

Si la SQL Server Native Client controlador ODBC encuentra un error en un único elemento de matriz de una matriz de parámetros, el controlador continúa ejecutando la instrucción para los elementos de matriz restantes. Si la aplicación ha enlazado una matriz de elementos de estado de parámetro para la instrucción, las filas de parámetros que generan errores se pueden determinar de la matriz.

Al usar el controlador ODBC de SQL Server Native Client, especifique SQL_PARAM_INPUT al enlazar parámetros de entrada. Especifique únicamente SQL_PARAM_OUTPUT o SQL_PARAM_INPUT_OUTPUT al enlazar parámetros de procedimientos almacenados definidos con la palabra clave OUTPUT.

SQLRowCount no es confiable con el controlador ODBC SQL Server Native Client si un elemento de matriz de una matriz de parámetros enlazados produce un error en la ejecución de instrucciones. El atributo de instrucción ODBC SQL_ATTR_PARAMS_PROCESSED_PTR notifica el número de filas procesadas antes de que se produzca el error. A continuación, la aplicación puede atravesar su matriz de estado de parámetro para detectar el número de instrucciones ejecutado correctamente, si es necesario.

Enlazar parámetros para tipos de caracteres SQL

Si el tipo de datos SQL que se pasa es un tipo de caracteres, ColumnSize es el tamaño en caracteres (no en bytes). Si la longitud de la cadena de datos en bytes es mayor que 8000, ColumnSize debe establecerse SQL_SS_LENGTH_UNLIMITEDen , lo que indica que no hay ningún límite para el tamaño del tipo SQL.

Por ejemplo, si el tipo de datos SQL es SQL_WVARCHAR, ColumnSize no debe ser mayor que 4000. Si la longitud real de los datos es mayor que 4000, ColumnSize debe establecerse SQL_SS_LENGTH_UNLIMITED en para que nvarchar(max) lo use el controlador.

SQLBindParameter y parámetros con valores de tabla

Al igual que otros tipos de parámetros, los parámetros con valores de tabla están enlazados por SQLBindParameter.

Una vez enlazado un parámetro con valores de tabla, también se enlazan sus columnas. Para enlazar las columnas, llame a SQLSetStmtAttr para establecer SQL_SOPT_SS_PARAM_FOCUS en el ordinal del parámetro con valores de tabla. A continuación, llame a SQLBindParameter para cada columna del parámetro con valores de tabla. Para volver a los enlaces de parámetro de nivel superior, establezca SQL_SOPT_SS_PARAM_FOCUS en 0.

Para obtener información sobre cómo asignar parámetros a campos descriptores para parámetros con valores de tabla, vea Binding and Data Transfer of Table-Valued Parameters and Column Values.

Para obtener más información sobre los parámetros con valores de tabla, vea Parámetros con valores de tabla (ODBC).

SQLBindParameter admite las características mejoradas de fecha y hora

Los valores de parámetro de los tipos de fecha y hora se convierten como se describe en Conversiones de C a SQL. Tenga en cuenta que los parámetros de tipo time y datetimeoffset deben tener ValueType especificado como SQL_C_DEFAULT o SQL_C_BINARY si se usan sus estructuras correspondientes (SQL_SS_TIME2_STRUCT y SQL_SS_TIMESTAMPOFFSET_STRUCT).

Para obtener más información, vea Mejoras de fecha y hora (ODBC).

Compatibilidad con SQLBindParameter para los UDT CLR grandes

SQLBindParameter admite tipos CLR definidos por el usuario (UDT) grandes. Para obtener más información, vea Large CLR User-Defined Types (ODBC).

Consulte también

ODBC API Implementation Details
Función SQLBindParameter