Compartir a través de


Procesar resultados: procesar resultados

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

El procesamiento de resultados en una aplicación ODBC implica determinar primero las características del conjunto de resultados y, a continuación, recuperar los datos en variables de programa mediante SQLBindCol o SQLGetData.

Para procesar resultados

  1. Recupere información del conjunto de resultados.

  2. Si se usan columnas enlazadas, por cada columna a la que quiera enlazar, llame a SQLBindCol para enlazar un búfer de programa a la columna.

  3. 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 usan 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 de número de columna creciente.

    • Llame a SQLGetData varias veces para obtener datos de una columna de texto o de imagen.

  4. 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 usan 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 devueltos normalmente 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.

  5. Opcionalmente, llame a SQLFreeStmt con SQL_UNBIND para liberar los búferes de columna enlazada.

  6. 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.

Consulte también

Recuperar información del conjunto de resultados (ODBC)