Condividi tramite


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.

Per informazioni su Vedere
Annullamento dell'elaborazione delle istruzioni Funzione SQLCancel
Liberare un handle Funzione SQLFreeHandle
Elaborazione di più set di risultati Funzione SQLMoreResults

Vedi anche

Riferimento API ODBC
File di intestazione ODBC