Cómo procesar resultados (ODBC)
Para procesar resultados
Recupere información del conjunto de resultados.
Si se utilizan columnas enlazadas, por cada columna a la que desee enlazar, llame a SQLBindCol para enlazar un búfer de programa a la columna.
Por cada fila del conjunto de resultados:
Llame a SQLFetch para obtener la siguiente fila.
Si se utilizan columnas enlazadas, utilice los datos que están ahora disponibles en los búferes de columna enlazada.
Si se utilizan columnas sin enlazar, llame a SQLGetData una o más veces para obtener los datos de las columnas sin enlazar después de la última columna enlazada. Las llamadas a SQLGetData deber estar en orden creciente de número de columna.
Llame a SQLGetData varias veces para obtener datos de una columna de texto o de imagen.
Cuando SQLFetch señale el fin del conjunto de resultados devolviendo SQL_NO_DATA, llame a SQLMoreResults para determinar si está disponible otro conjunto de resultados.
Si devuelve SQL_SUCCESS, está disponible otro conjunto de resultados.
Si devuelve SQL_NO_DATA, no hay ningún otro conjunto de resultados disponible.
Si devuelve SQL_SUCCESS_WITH_INFO o SQL_ERROR, llame a SQLGetDiagRec para determinar si está disponible la salida de una instrucción PRINT o RAISERROR.
Si se utilizan parámetros de instrucción enlazados como parámetros de salida o como valor devuelto de un procedimiento almacenado, utilice los datos ahora disponibles en los búferes de parámetros enlazados. Asimismo, si se utilizan parámetros enlazados, cada llamada a SQLExecute o SQLExecDirect ejecutará la instrucción SQL S veces, donde S es el número de elementos en la matriz de parámetros enlazados. Esto significa que habrá S conjuntos de resultados para procesar, donde cada conjunto de resultados comprende todos los conjuntos de resultados, parámetros de salida y códigos de retorno normalmente devueltos por una ejecución única de la instrucción SQL.
Nota
Cuando un conjunto de resultados contiene filas del cálculo, cada fila del cálculo está disponible como un conjunto de resultados independiente. Estos conjuntos de resultados de cálculo se intercalan entre las filas normales e interrumpen las filas normales en varios conjuntos de resultados.
Opcionalmente, llame a SQLFreeStmt con SQL_UNBIND para liberar los búferes de columna enlazada.
Si está disponible otro conjunto de resultados, vaya al paso 1.
Nota
Para cancelar el procesamiento de un conjunto de resultados antes de que SQLFetch devuelva SQL_NO_DATA, llame a SQLCloseCursor.