Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Las aplicaciones pueden enlazar tantas o tan pocas columnas del conjunto de resultados como elijan, incluyendo no enlazar ninguna columna. Cuando se captura una fila de datos, el controlador devuelve los datos de las columnas enlazadas a la aplicación. Si la aplicación enlaza todas las columnas del conjunto de resultados depende de la aplicación. Por ejemplo, las aplicaciones que generan informes suelen tener un formato fijo; estas aplicaciones crean un conjunto de resultados que contiene todas las columnas usadas en el informe y, a continuación, enlazan y recuperan los datos de todas estas columnas. Las aplicaciones que muestran pantallas llenas de datos a veces permiten al usuario decidir qué columnas mostrar; estas aplicaciones crean un conjunto de resultados que contiene todas las columnas que puede querer el usuario, pero enlazan y recuperan los datos solo para esas columnas elegidas por el usuario.
Los datos se pueden recuperar de columnas sin enlazar llamando a SQLGetData. Esto suele llamarse para recuperar datos largos, que a menudo superan la longitud de un único búfer y se deben recuperar en partes.
Las columnas se pueden vincular en cualquier momento, incluso después de obtener las filas. Sin embargo, los nuevos enlaces no surten efecto hasta la próxima vez que se capture una fila; no se aplican a los datos de las filas ya capturadas.
Una variable permanece enlazada a una columna hasta que una variable diferente está enlazada a la columna, hasta que la columna se desenlace llamando a SQLBindCol con un puntero nulo como dirección de la variable, hasta que todas las columnas se desenlace llamando a SQLFreeStmt con la opción SQL_UNBIND o hasta que se libere la instrucción. Por este motivo, la aplicación debe asegurarse de que todas las variables enlazadas sigan siendo válidas siempre que estén enlazadas. Para obtener más información, consulte Asignación y liberación de búferes.
Dado que los enlaces de columna son simplemente información asociada a la estructura de instrucciones, se pueden establecer en cualquier orden. También son independientes del conjunto de resultados. Por ejemplo, supongamos que una aplicación enlaza las columnas del conjunto de resultados generado por la siguiente instrucción SQL:
SELECT * FROM Orders
Si la aplicación ejecuta la instrucción SQL
SELECT * FROM Lines
en el mismo identificador de instrucción, los enlaces de columna del primer conjunto de resultados siguen en vigor porque estos son los enlaces almacenados en la estructura de instrucciones. En la mayoría de los casos, se trata de una práctica de programación deficiente y debe evitarse. En su lugar, la aplicación debe llamar a SQLFreeStmt con la opción SQL_UNBIND para desenlazar todas las columnas antiguas y luego enlazar nuevas.