Compartir a través de


SQLBindParameter

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. Otras ventajas incluyen una pérdida reducida de precisión al insertar o actualizar tipos de datos numéricos aproximados.

Nota:

Al insertar char y wchar escribir datos en una columna de imagen, se usa el tamaño de los datos que se pasan, en lugar 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ámetros para la instrucción , las filas de parámetros que generan errores se pueden determinar a partir de la matriz.

Al usar el controlador ODBC de SQL Server Native Client, especifique SQL_PARAM_INPUT al enlazar parámetros de entrada. Especifique solo SQL_PARAM_OUTPUT o SQL_PARAM_INPUT_OUTPUT al enlazar parámetros de procedimiento almacenado 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 informa del 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ámetros para detectar el número de instrucciones ejecutadas correctamente, si es necesario.

Parámetros de enlace para tipos de caracteres SQL

Si el tipo de datos SQL pasado es un tipo de carácter, ColumnSize es el tamaño en caracteres (no 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 de datos real es mayor que 4000, ColumnSize debe establecerse en SQL_SS_LENGTH_UNLIMITED para que nvarchar(max) lo use el controlador.

Parámetros SQLBindParameter y Table-Valued

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

Después de enlazar un parámetro con valores de tabla, sus columnas también están enlazadas. 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ámetros 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 Table-Valued parámetros 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).

Compatibilidad de SQLBindParameter con 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 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.

Véase también

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