Comparteix a través de


Búferes diferidos

Un búfer diferido es aquel cuyo valor se usa en algún momento después de especificarse en una llamada a función. Por ejemplo, SQLBindParameter se usa para asociar, o enlazar, un búfer de datos con un parámetro en una instrucción SQL. La aplicación especifica el número del parámetro y pasa la dirección, la longitud en bytes y el tipo del búfer. El controlador guarda esta información pero no examina el contenido del búfer. Más tarde, cuando la aplicación ejecuta la instrucción, el controlador recupera la información y la utiliza para recuperar los datos del parámetro y enviarlos al origen de datos. Por lo tanto, la entrada de datos en el búfer es diferida. Debido a que los búferes diferidos se especifican en una función y se usan en otra, es un error de programación de aplicaciones liberar un búfer diferido mientras el controlador aún espera que exista; para más información, consulte Asignación y liberación de búferes, más adelante en esta sección.

Tanto los búferes de entrada como los de salida se pueden diferir. La siguiente tabla resume los usos de los búferes diferidos. Tenga en cuenta que los búferes diferidos vinculados a columnas de conjuntos de resultados se especifican con SQLBindCol, y los búferes diferidos vinculados a parámetros de instrucciones SQL se especifican con SQLBindParameter.

Uso del búfer Tipo Especificado con Usado por
Envío de datos para parámetros de entrada Entrada diferida SQLBindParameter SQLExecute
SQLExecDirect
Envío de datos para actualizar o insertar una fila en un conjunto de resultados Entrada diferida SQLBindCol SQLSetPos
Devolver datos para los parámetros de salida y entrada/salida Salida diferida SQLBindParameter SQLExecute
SQLExecDirect
Devolver datos del conjunto de resultados Salida diferida SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos