Cómo utilizar un instrucción (ODBC)

Para utilizar una instrucción

  1. Llame a SQLAllocHandle con un HandleType de SQL_HANDLE_STMT para asignar un identificador de instrucción.

  2. Opcionalmente, llame a SQLSetStmtAttr para definir las opciones de la instrucción o a SQLGetStmtAttr para obtener los atributos de la instrucción.

    Para utilizar cursores de servidor, debe establecer los atributos de cursor en valores distintos de sus valores predeterminados.

  3. Opcionalmente, si la instrucción se va a ejecutar varias veces, prepárela para la ejecución con SQLPrepare.

  4. Opcionalmente, si la instrucción ha enlazado marcadores de parámetros, enlace los marcadores de parámetros a las variables del programa utilizando SQLBindParameter. Si se ha preparado la instrucción, puede llamar a SQLNumParams y SQLDescribeParam para buscar el número y las características de los parámetros.

  5. Ejecute directamente una instrucción utilizando SQLExecDirect.

    O bien

    Si se ha preparado la instrucción, ejecútela varias veces utilizando SQLExecute.

    O bien

    Llame a una función de catálogo, que devuelve los resultados.

  6. Procese los resultados enlazando las columnas del conjunto de resultados a variables de programa, moviendo los datos de las columnas del conjunto de resultados a las variables del programa mediante SQLGetData o una combinación de los dos métodos.

    Obtenga una fila cada vez del conjunto de resultados de una instrucción.

    O bien

    Obtenga varias filas cada vez del conjunto de resultados mediante un cursor de bloque.

    O bien

    Llame a SQLRowCount para determinar el número de filas afectado por una instrucción INSERT, UPDATE o DELETE.

    Si la instrucción SQL puede tener varios conjuntos de resultados, llame a SQLMoreResults al final de cada conjunto de resultados para determinar si hay más conjuntos de resultados que procesar.

  7. Una vez procesados los resultados, pueden requerirse las acciones siguientes para que el identificador de instrucción esté disponible para ejecutar una nueva instrucción:

    • Si no llamó a SQLMoreResults hasta que se devolvió SQL_NO_DATA, llame a SQLCloseCursor para cerrar el cursor.

    • Si ha enlazado marcadores de parámetros a las variables del programa, llame a SQLFreeStmt con Option establecido en SQL_RESET_PARAMS para liberar los parámetros enlazados.

    • Si ha enlazado columnas de conjuntos de resultados a las variables del programa, llame a SQLFreeStmt con Option establecido en SQL_UNBIND para liberar las columnas enlazadas.

    • Para reutilizar el identificador de instrucción, vaya al paso 2.

  8. Llame a SQLFreeHandle con un HandleType de SQL_HANDLE_STMT para liberar el identificador de instrucción.