Funzione SQLCloseCursor
Conformità
Versione introdotta: Conformità agli standard ODBC 3.0: ISO 92
Riepilogo
SQLCloseCursor chiude un cursore aperto in un'istruzione e rimuove i risultati in sospeso.
Sintassi
SQLRETURN SQLCloseCursor(
SQLHSTMT StatementHandle);
Argomenti
StatementHandle
[Input] Handle di istruzione.
Resi
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR o SQL_INVALID_HANDLE.
Diagnostica
Quando SQLCloseCursor restituisce SQL_ERROR o SQL_SUCCESS_WITH_INFO, è possibile ottenere un valore SQLSTATE associato chiamando SQLGetDiagRec con handleType di SQL_HANDLE_STMT e handle di StatementHandle. La tabella seguente elenca i valori SQLSTATE comunemente restituiti da SQLCloseCursor e spiega ognuno di essi nel contesto di questa funzione. La notazione "(DM)" precede le descrizioni di SQLSTATEs restituite da Gestione driver. Il codice restituito associato a ogni valore SQLSTATE è SQL_ERROR, a meno che non sia specificato diversamente.
SQLSTATE | Errore | Descrizione |
---|---|---|
01000 | Avviso generale | Messaggio informativo specifico del driver. (La funzione restituisce SQL_SUCCESS_WITH_INFO. |
24000 | Stato del cursore non valido | Nessun cursore aperto in StatementHandle. Viene restituito solo da odbc 3.x driver.) |
HY000 | Errore generale: | Si è verificato un errore per il quale non è stato specificato SQLSTATE e per il quale non è stato definito alcun SQLSTATE specifico dell'implementazione. Il messaggio di errore restituito da SQLGetDiagRec nel buffer *MessageText descrive l'errore e la relativa causa. |
HY001 | Errore di allocazione della memoria | Il driver non è riuscito ad allocare memoria necessaria per supportare l'esecuzione o il completamento della funzione. |
HY010 | Errore della sequenza di funzioni | (DM) È stata chiamata una funzione in esecuzione asincrona per l'handle di connessione associato a StatementHandle ed è ancora in esecuzione quando questa funzione è stata chiamata. (DM) È stata chiamata una funzione in esecuzione asincrona per StatementHandle ed era ancora in esecuzione quando questa funzione è stata chiamata. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations o SQLSetPos è stato chiamato per StatementHandle e restituito SQL_NEED_DATA. Questa funzione è stata chiamata prima dell'invio dei dati per tutti i parametri o le colonne data-at-execution. |
HY013 | Errore di gestione della memoria | Impossibile elaborare la chiamata di funzione perché non è stato possibile accedere agli oggetti di memoria sottostanti, probabilmente a causa di condizioni di memoria insufficiente. |
HY117 | La connessione viene sospesa a causa dello stato sconosciuto della transazione. Sono consentite solo funzioni disconnesse e di sola lettura. | (DM) Per altre informazioni sullo stato sospeso, vedere Funzione SQLEndTran. |
HYT01 | Il timeout della connessione è scaduto | Periodo di timeout della connessione scaduto prima che l'origine dati rispondesse alla richiesta. Il periodo di timeout della connessione viene impostato tramite SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. |
IM001 | Il driver non supporta questa funzione | (DM) Il driver associato a StatementHandle non supporta la funzione. |
Commenti
SQLCloseCursor restituisce SQLSTATE 24000 (stato cursore non valido) se non è aperto alcun cursore. La chiamata a SQLCloseCursor equivale a chiamare SQLFreeStmt con l'opzione SQL_CLOSE, ad eccezione del fatto che SQLFreeStmt con SQL_CLOSE non ha alcun effetto sull'applicazione se nell'istruzione non è aperto alcun cursore, mentre SQLCloseCursor restituisce SQLSTATE 24000 (stato cursore non valido).
Nota
Se si usa ODBC 3.Applicazione x che utilizza un'applicazione ODBC 2.X driver chiama SQLCloseCursor quando non è aperto alcun cursore, SQLSTATE 24000 (stato cursore non valido) non viene restituito, perché Gestione driver esegue il mapping di SQLCloseCursor a SQLFreeStmt con SQL_CLOSE.
Per altre informazioni, vedere Chiusura del cursore.
Esempio di codice
Vedere Funzione SQLBrowseConnect e funzione SQLConnect.
Funzioni correlate
Per informazioni su | Vedere |
---|---|
Annullamento dell'elaborazione delle istruzioni | Funzione SQLCancel |
Liberare un handle | Funzione SQLFreeHandle |
Elaborazione di più set di risultati | Funzione SQLMoreResults |