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.
Funciones relacionadas
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) |