Compartir a través de


SQLBindCol

Como regla general, tenga en cuenta las implicaciones de usar SQLBindCol para provocar la conversión de datos. Las conversiones de enlace son procesos de cliente, por lo que, por ejemplo, recuperar un valor de punto flotante enlazado a una columna de caracteres hace que el controlador realice la conversión float-to-character localmente cuando se captura una fila. La función CONVERT Transact-SQL se puede usar para colocar el costo de la conversión de datos en el servidor.

Una instancia de SQL Server puede devolver varios conjuntos de filas de resultados en una sola ejecución de instrucciones. Cada conjunto de resultados debe enlazarse por separado. Para obtener más información sobre el enlace para varios conjuntos de resultados, vea SQLMoreResults.

El desarrollador puede enlazar columnas a tipos de datos de C específicos de SQL Server mediante el valor SQL_C_BINARYTargetType . Las columnas enlazadas a tipos específicos de SQL Server no son portátiles. Los tipos de datos ODBC C específicos de SQL Server definidos coinciden con las definiciones de tipo de la biblioteca de bases de datos y es posible que los desarrolladores de DB-Library portar aplicaciones quieran aprovechar esta característica.

El truncamiento de datos de informes es un proceso costoso para el controlador ODBC de SQL Server Native Client. Puede evitar el truncamiento asegurándose de que todos los búferes de datos enlazados sean lo suficientemente anchos como para devolver datos. Para los datos de caracteres, el ancho debe incluir espacio para un terminador de cadena cuando se usa el comportamiento predeterminado del controlador para la terminación de cadena. Por ejemplo, enlazar una columna char(5) de SQL Server a una matriz de cinco caracteres da como resultado el truncamiento de cada valor capturado. Enlazar la misma columna a una matriz de seis caracteres evita el truncamiento proporcionando un elemento de carácter en el que almacenar el terminador nulo. SQLGetData se puede usar para recuperar de forma eficaz datos binarios y caracteres largos sin truncamiento.

Para los tipos de datos de valor grande, si el búfer proporcionado por el usuario no es lo suficientemente grande como para contener el valor completo de la columna, SQL_SUCCESS_WITH_INFO se devuelve y se devuelven los "datos de cadena; Se emite la advertencia de truncamiento derecho". El StrLen_or_IndPtr argumento contendrá el número de caracteres y bytes almacenados en el búfer.

Compatibilidad con SQLBindCol para características mejoradas de fecha y hora

Los valores de columna de resultados de tipos de fecha y hora se convierten como se describe en Conversiones de SQL a C. Tenga en cuenta que para recuperar las columnas time y datetimeoffset como sus estructuras correspondientes (SQL_SS_TIME2_STRUCT y SQL_SS_TIMESTAMPOFFSET_STRUCT), TargetType debe especificarse como SQL_C_DEFAULT o SQL_C_BINARY.

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

Compatibilidad de SQLBindCol con UDT clR grandes

SQLBindCol 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

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