Compartir a través de


SQLBindParameter

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

SQLBindParameter puede 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 para los componentes de cliente y 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 el controlador ODBC de SQL Server Native Client 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 de 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 de 8000, ColumnSize debería establecerse en SQL_SS_LENGTH_UNLIMITED, lo que indica que no hay límite en 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 en SQL_SS_LENGTH_UNLIMITED para que el controlador use nvarchar(max) .

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 Enlace y transferencia de datos de parámetros con valores de tabla y valores de columna.

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. Observe 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 definidos por el usuario (UDT) CLR grandes. Para obtener más información, vea Tipos definidos por el usuario (ODBC) clR grandes.

Consulte también

Detalles de implementación de la API de ODBC
Función SQLBindParameter