Comparteix a través de


Función SQLCloseCursor

Conformidad
Versión introducida: Cumplimiento de estándares odbc 3.0: ISO 92

Resumen
SQLCloseCursor cierra un cursor que se ha abierto en una instrucción y descarta los resultados pendientes.

Sintaxis

  
SQLRETURN SQLCloseCursor(  
     SQLHSTMT     StatementHandle);  

Argumentos

StatementHandle
[Entrada] Identificador de instrucción.

Devoluciones

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR o SQL_INVALID_HANDLE.

Diagnóstico

Cuando SQLCloseCursor devuelve SQL_ERROR o SQL_SUCCESS_WITH_INFO, se puede obtener un valor SQLSTATE asociado llamando a SQLGetDiagRec con un HandleType de SQL_HANDLE_STMT y un identificador de StatementHandle. En la tabla siguiente se enumeran los valores SQLSTATE devueltos normalmente por SQLCloseCursor y se explica cada uno en el contexto de esta función; la notación "(DM)" precede a las descripciones de SQLSTATEs devueltas por el Administrador de controladores. El código de retorno asociado a cada valor SQLSTATE es SQL_ERROR, a menos que se indique lo contrario.

SQLSTATE Error Descripción
01000 Advertencia general Mensaje informativo específico del controlador. (Function devuelve SQL_SUCCESS_WITH_INFO).
24000 Estado de cursor no válido No se ha abierto ningún cursor en StatementHandle. (Este valor solo lo devuelve un ODBC 3. controlador x ).
HY000 Error general Se produjo un error para el que no había ningún SQLSTATE específico y para el que no se definió SQLSTATE específico de la implementación. El mensaje de error devuelto por SQLGetDiagRec en el búfer *MessageText describe el error y su causa.
HY001 Error de asignación de memoria El controlador no pudo asignar memoria necesaria para admitir la ejecución o finalización de la función.
HY010 Error de secuencia de función (DM) Se llamó a una función de ejecución asincrónica para el identificador de conexión asociado a StatementHandle y todavía se estaba ejecutando cuando se llamó a esta función.

(DM) Se llamó a una función de ejecución asincrónica para statementHandle y todavía se estaba ejecutando cuando se llamó a esta función.

(DM) SE llamó a SQLExecute, SQLExecDirect, SQLBulkOperations o SQLSetPos para la instrucciónHandle y devolvió SQL_NEED_DATA. Se llamó a esta función antes de enviar datos para todos los parámetros o columnas de datos en ejecución.
HY013 Error de administración de memoria No se pudo procesar la llamada de función porque no se pudo acceder a los objetos de memoria subyacentes, posiblemente debido a condiciones de memoria baja.
HY117 La conexión se suspende debido a un estado de transacción desconocido. Solo se permiten funciones de desconexión y de solo lectura. (DM) Para obtener más información sobre el estado suspendido, vea Función SQLEndTran.
HYT01 Se ha agotado el tiempo de espera de la conexión. El período de tiempo de espera de conexión expiró antes de que el origen de datos respondiera a la solicitud. El período de tiempo de espera de conexión se establece a través de SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 El controlador no admite esta función (DM) El controlador asociado a StatementHandle no admite la función .

Comentarios

SQLCloseCursor devuelve SQLSTATE 24000 (estado de cursor no válido) si no hay ningún cursor abierto. Llamar a SQLCloseCursor equivale a llamar a SQLFreeStmt con la opción SQL_CLOSE, con la excepción de que SQLFreeStmt con SQL_CLOSE no tiene ningún efecto en la aplicación si no hay ningún cursor abierto en la instrucción, mientras que SQLCloseCursor devuelve SQLSTATE 24000 (estado de cursor no válido).

Nota

Si es odbc 3. Aplicación x que funciona con odbc 2. El controlador x llama a SQLCloseCursor cuando no hay ningún cursor abierto, NO se devuelve SQLSTATE 24000 (estado de cursor no válido), ya que el Administrador de controladores asigna SQLCloseCursor a SQLFreeStmt con SQL_CLOSE.

Para obtener más información, vea Cerrar el cursor.

Ejemplo de código

Consulte Función SQLBrowseConnect y Función SQLConnect.

Para información acerca de Vea
Cancelación del procesamiento de instrucciones Función SQLCancel
Liberar un identificador Función SQLFreeHandle
Procesamiento de varios conjuntos de resultados SQLMoreResults (función)

Consulte también

Referencia de API ODBC
Archivos de encabezado de ODBC