Funzione SQLExecDirect

Conformità
Versione introdotta: Conformità agli standard ODBC 1.0: ISO 92

Riepilogo
SQLExecDirect esegue un'istruzione preparabile, usando i valori correnti delle variabili dell'indicatore di parametro se sono presenti parametri nell'istruzione . SQLExecDirect è il modo più rapido per inviare un'istruzione SQL per l'esecuzione una tantum.

Sintassi

  
SQLRETURN SQLExecDirect(  
     SQLHSTMT     StatementHandle,  
     SQLCHAR *    StatementText,  
     SQLINTEGER   TextLength);  

Argomenti

StatementHandle
[Input] Handle di istruzione.

StatementText
[Input] Istruzione SQL da eseguire.

TextLength
[Input] Lunghezza di *StatementText in caratteri.

Valori restituiti

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NEED_DATA, SQL_STILL_EXECUTING, SQL_ERROR, SQL_NO_DATA, SQL_INVALID_HANDLE o SQL_PARAM_DATA_AVAILABLE.

Diagnostica

Quando SQLExecDirect 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 SQLExecDirect e ne spiega ognuno 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.
01001 Conflitto dell'operazione di cursore *StatementText contiene un'istruzione di aggiornamento o eliminazione posizionata e nessuna riga o più righe sono state aggiornate o eliminate. Per altre informazioni sugli aggiornamenti a più righe, vedere la descrizione del SQL_ATTR_SIMULATE_CURSOR Attributo in SQLSetStmtAttr.)

(La funzione restituisce SQL_SUCCESS_WITH_INFO.
01003 Valore NULL eliminato nella funzione set L'argomento StatementText conteneva una funzione set (ad esempio AVG, MAX, MIN e così via), ma non la funzione count set e i valori di argomento NULL sono stati eliminati prima dell'applicazione della funzione. (La funzione restituisce SQL_SUCCESS_WITH_INFO.
01004 Dati stringa, troncati a destra I dati stringa o binari restituiti per un parametro di input/output o di output hanno comportato il troncamento di dati binari non null o non null. Se si tratta di un valore stringa, è stato troncato a destra. (La funzione restituisce SQL_SUCCESS_WITH_INFO.
01006 Privilegio non revocato *StatementText contiene un'istruzione REVOKE e l'utente non dispone del privilegio specificato. (La funzione restituisce SQL_SUCCESS_WITH_INFO.
01007 Privilegio non concesso *StatementText era un'istruzione GRANT e l'utente non poteva concedere il privilegio specificato.
01S02 Valore dell'opzione modificato Un attributo di istruzione specificato non è valido a causa delle condizioni di lavoro dell'implementazione, pertanto è stato sostituito temporaneamente un valore simile. È possibile chiamare SQLGetStmtAttr per determinare il valore sostituito temporaneamente. Il valore sostitutivo è valido per StatementHandle fino a quando il cursore non viene chiuso, a quel punto l'attributo dell'istruzione ripristina il valore precedente. Gli attributi dell'istruzione che possono essere modificati sono:

SQL_ ATTR_CONCURRENCY SQL_ ATTR_CURSOR_TYPE SQL_ ATTR_KEYSET_SIZE SQL_ ATTR_MAX_LENGTH SQL_ ATTR_MAX_ROWS SQL_ ATTR_QUERY_TIMEOUT SQL_ ATTR_SIMULATE_CURSOR

(La funzione restituisce SQL_SUCCESS_WITH_INFO.
01S07 Troncamento frazionario I dati restituiti per un parametro di input/output o di output sono stati troncati in modo che la parte frazionaria di un tipo di dati numerico sia stata troncata o la parte frazionaria del componente temporale di un tipo di dati time, timestamp o interval è stata troncata.

(La funzione restituisce SQL_SUCCESS_WITH_INFO.
07002 Campo COUNT errato Il numero di parametri specificati in SQLBindParameter è minore del numero di parametri nell'istruzione SQL contenuta in *StatementText.

SQLBindParameter è stato chiamato con ParameterValuePtr impostato su un puntatore Null, StrLen_or_IndPtr non impostato su SQL_NULL_DATA o SQL_DATA_AT_EXEC e InputOutputType non è impostato su SQL_PARAM_OUTPUT, in modo che il numero di parametri specificati in SQLBindParameter sia maggiore del numero di parametri nell'istruzione SQL contenuta in *StatementText.
07006 Violazione dell'attributo del tipo di dati con restrizioni Impossibile convertire il valore dei dati identificato dall'argomento ValueType in SQLBindParameter per il parametro associato nel tipo di dati identificato dall'argomento ParameterType in SQLBindParameter.

Impossibile convertire il valore di dati restituito per un parametro associato come SQL_PARAM_INPUT_OUTPUT o SQL_PARAM_OUTPUT nel tipo di dati identificato dall'argomento ValueType in SQLBindParameter.

Se non è stato possibile convertire i valori di dati per una o più righe ma sono state restituite una o più righe, questa funzione restituisce SQL_SUCCESS_WITH_INFO.
07007 Violazione del valore del parametro con restrizioni Il tipo di parametro SQL_PARAM_INPUT_OUTPUT_STREAM viene usato solo per un parametro che invia e riceve i dati in parti. Un buffer associato all'input non è consentito per questo tipo di parametro.

Questo errore si verifica quando il tipo di parametro è SQL_PARAM_INPUT_OUTPUT e quando il *StrLen_or_IndPtr specificato in SQLBindParameter non è uguale a SQL_NULL_DATA, SQL_DEFAULT_PARAM, SQL_LEN_DATA_AT_EXEC(len) o SQL_DATA_AT_EXEC.
07S01 Uso non valido del parametro predefinito Un valore del parametro, impostato con SQLBindParameter, è stato SQL_DEFAULT_PARAM e il parametro corrispondente non ha un valore predefinito.
08S01 Errore del collegamento di comunicazione Collegamento di comunicazione tra il driver e l'origine dati a cui è stato connesso il driver non è riuscito prima del completamento dell'elaborazione della funzione.
21S01 L'elenco di valori di inserimento non corrisponde all'elenco di colonne *StatementText contiene un'istruzione INSERT e il numero di valori da inserire non corrisponde al grado della tabella derivata.
21S02 Il grado di tabella derivata non corrisponde all'elenco di colonne *StatementText conteneva un'istruzione CREATE VIEW e l'elenco di colonne non qualificate (il numero di colonne specificate per la vista negli argomenti dell'identificatore di colonna dell'istruzione SQL) conteneva più nomi rispetto al numero di colonne nella tabella derivata definita dall'argomento della specifica della query dell'istruzione SQL.
22001 Dati stringa, troncamento destro L'assegnazione di un carattere o di un valore binario a una colonna ha comportato il troncamento di dati di tipo carattere non vuoti o dati binari non Null.
22002 Variabile indicatore obbligatoria ma non fornita I dati NULL sono stati associati a un parametro di output il cui StrLen_or_IndPtr impostato da SQLBindParameter era un puntatore Null.
22003 Valore numerico non compreso nell'intervallo *StatementText conteneva un'istruzione SQL che conteneva un parametro numerico o un valore letterale associato e il valore causava il troncamento dell'intera parte del numero, anziché frazionaria, quando viene assegnata alla colonna della tabella associata.

La restituzione di un valore numerico (come numerico o stringa) per uno o più parametri di input/output o output avrebbe causato il troncamento dell'intera parte (anziché frazionaria) del numero.
22007 Formato datetime non valido *StatementText conteneva un'istruzione SQL contenente una struttura di data, ora o timestamp come parametro associato e il parametro era, rispettivamente, una data, un'ora o un timestamp non valido.

Un parametro di input/output o di output è stato associato a una struttura di data, ora o timestamp C e un valore nel parametro restituito era, rispettivamente, una data, un'ora o un timestamp non validi. (La funzione restituisce SQL_SUCCESS_WITH_INFO.
22008 Overflow del campo Datetime *StatementText conteneva un'istruzione SQL che conteneva un'espressione datetime che, quando calcolata, generava una struttura di data, ora o timestamp non valida.

Un'espressione datetime calcolata per un parametro di input/output o di output ha generato una struttura C di data, ora o timestamp non valida.
22012 Divisione per zero *StatementText contiene un'istruzione SQL contenente un'espressione aritmetica che ha causato la divisione per zero.

Un'espressione aritmetica calcolata per un parametro di input/output o di output ha generato una divisione per zero.
22015 Overflow del campo intervallo *StatementText conteneva un parametro numerico o intervallo esatto che, quando convertito in un tipo di dati SQL intervallo, causava una perdita di cifre significative.

*StatementText conteneva un parametro interval con più di un campo che, quando convertito in un tipo di dati numerico in una colonna, non aveva rappresentazione nel tipo di dati numerico.

*StatementText conteneva i dati dei parametri assegnati a un tipo SQL di intervallo e non c'era alcuna rappresentazione del valore del tipo C nel tipo SQL intervallo.

L'assegnazione di un parametro di input/output o di output che era un tipo SQL numerico o intervallo esatto a un tipo C intervallo ha causato una perdita di cifre significative.

Quando un parametro di input/output o di output è stato assegnato a una struttura interval C, non è presente alcuna rappresentazione dei dati nella struttura dei dati interval.
22018 Valore carattere non valido per la specifica del cast *StatementText conteneva un tipo C che era un valore numerico esatto o approssimativo, un tipo di dati datetime o interval, il tipo SQL della colonna era un tipo di dati carattere e il valore nella colonna non era un valore letterale valido del tipo C associato.

Quando è stato restituito un parametro di input/output o di output, il tipo SQL era un tipo di dati numerico esatto o approssimativo, un valore datetime o un tipo di dati interval; il tipo C era SQL_C_CHAR; e il valore nella colonna non era un valore letterale valido del tipo SQL associato.
22019 Carattere di escape non valido *StatementText conteneva un'istruzione SQL che conteneva un predicato LIKE con escape nella clausola WHERE e la lunghezza del carattere di escape che segue ESCAPE non era uguale a 1.
22025 Sequenza di escape non valida *StatementText conteneva un'istruzione SQL che conteneva il carattere di escape "ESCAPE del valore del modello LIKE " nella clausola WHERE e il carattere che segue il carattere di escape nel valore del criterio non era uno di "%" o "_".
23000 Violazione del vincolo di integrità *StatementText contiene un'istruzione SQL contenente un parametro o un valore letterale. Il valore del parametro era NULL per una colonna definita come NOT NULL nella colonna della tabella associata, per una colonna vincolata a contenere solo valori univoci è stato specificato un valore duplicato oppure è stato violato un altro vincolo di integrità.
24000 Stato del cursore non valido Un cursore è stato posizionato in StatementHandle da SQLFetch o SQLFetchScroll. Questo errore viene restituito da Gestione driver se SQLFetch o SQLFetchScroll non ha restituito SQL_NO_DATA e viene restituito dal driver se SQLFetch o SQLFetchScroll ha restituito SQL_NO_DATA.

Un cursore è stato aperto ma non posizionato in StatementHandle.

*StatementText contiene un'istruzione di aggiornamento o eliminazione posizionata e il cursore è stato posizionato prima dell'inizio del set di risultati o dopo la fine del set di risultati.
34000 Nome di cursore non valido *StatementText contiene un'istruzione di aggiornamento o eliminazione posizionata e il cursore a cui fa riferimento l'istruzione in esecuzione non è stata aperta.
3D000 Nome catalogo non valido Il nome del catalogo specificato in StatementText non è valido.
3F000 Nome dello schema non valido Il nome dello schema specificato in StatementText non è valido.
40001 Errore di serializzazione È stato eseguito il rollback della transazione a causa di un deadlock della risorsa con un'altra transazione.
40003 Completamento istruzione sconosciuto La connessione associata non è riuscita durante l'esecuzione di questa funzione e non è possibile determinare lo stato della transazione.
42000 Errore di sintassi o violazione di accesso *StatementText conteneva un'istruzione SQL che non era preparabile o conteneva un errore di sintassi.

L'utente non dispone dell'autorizzazione per eseguire l'istruzione SQL contenuta in *StatementText.
42S01 Tabella o vista di base già esistente *StatementText contiene un'istruzione CREATE TABLE o CREATE VIEW e il nome della tabella o della vista specificato esiste già.
42S02 Tabella o vista di base non trovata *StatementText contiene un'istruzione DROP TABLE o DROP VIEW e il nome della tabella o della vista specificato non esisteva.

*StatementText contiene un'istruzione ALTER TABLE e il nome della tabella specificato non esisteva.

*StatementText contiene un'istruzione CREATE VIEW e un nome di tabella o vista definito dalla specifica della query non esisteva.

*StatementText contiene un'istruzione CREATE INDEX e il nome della tabella specificato non esiste.

*StatementText contiene un'istruzione GRANT o REVOKE e il nome della tabella o della vista specificato non esiste.

*StatementText contiene un'istruzione SELECT e un nome di tabella o vista specificato non esisteva.

*StatementText conteneva un'istruzione DELETE, INSERT o UPDATE e il nome della tabella specificato non esisteva.

*StatementText contiene un'istruzione CREATE TABLE e una tabella specificata in un vincolo (che fa riferimento a una tabella diversa da quella creata) non esiste.

*StatementText conteneva un'istruzione CREATE SCHEMA e un nome di tabella o vista specificato non esisteva.
42S11 Indice già esistente *StatementText contiene un'istruzione CREATE INDEX e il nome di indice specificato esiste già.

*StatementText contiene un'istruzione CREATE SCHEMA e il nome di indice specificato esiste già.
42S12 Indice non trovato *StatementText conteneva un'istruzione DROP INDEX e il nome dell'indice specificato non esisteva.
42S21 Colonna già esistente *StatementText contiene un'istruzione ALTER TABLE e la colonna specificata nella clausola ADD non è univoca o identifica una colonna esistente nella tabella di base.
42S22 Colonna non trovata *StatementText contiene un'istruzione CREATE INDEX e uno o più nomi di colonna specificati nell'elenco di colonne non esistevano.

*StatementText conteneva un'istruzione GRANT o REVOKE e un nome di colonna specificato non esisteva.

*StatementText conteneva un'istruzione SELECT, DELETE, INSERT o UPDATE e un nome di colonna specificato non esisteva.

*StatementText conteneva un'istruzione CREATE TABLE e una colonna specificata in un vincolo (facendo riferimento a una tabella diversa da quella creata) non esisteva.

*StatementText conteneva un'istruzione CREATE SCHEMA e un nome di colonna specificato non esisteva.
44000 Violazione della clausola WITH CHECK OPTION L'argomento StatementText contiene un'istruzione INSERT eseguita in una tabella visualizzata o in una tabella derivata dalla tabella visualizzata creata specificando WITH CHECK OPTION, in modo che una o più righe interessate dall'istruzione INSERT non siano più presenti nella tabella visualizzata.

L'argomento StatementText contiene un'istruzione UPDATE eseguita in una tabella visualizzata o in una tabella derivata dalla tabella visualizzata creata specificando WITH CHECK OPTION, in modo che una o più righe interessate dall'istruzione UPDATE non siano più presenti nella tabella visualizzata.
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.
HY008 Operazione annullata L'elaborazione asincrona è stata abilitata per StatementHandle. La funzione è stata chiamata e prima di completare l'esecuzione, SQLCancel o SQLCancelHandle è stata chiamata in StatementHandle. La funzione è stata quindi chiamata di nuovo in StatementHandle.

La funzione è stata chiamata e prima del completamento dell'esecuzione, SQLCancel o SQLCancelHandle è stato chiamato su StatementHandle da un thread diverso in un'applicazione multithread.
HY009 Uso non valido del puntatore Null (DM) *StatementText era un puntatore Null.
HY010 Errore della sequenza di funzioni (DM) È stata chiamata una funzione in esecuzione asincrona per l'handle di connessione associato a StatementHandle. Questa funzione asincrona era ancora in esecuzione quando è stata chiamata la funzione SQLExecDirect .

(DM) SQLExecute, SQLExecDirect o SQLMoreResults è stato chiamato per StatementHandle e restituito SQL_PARAM_DATA_AVAILABLE. Questa funzione è stata chiamata prima del recupero dei dati per tutti i parametri trasmessi.

(DM) Una funzione in esecuzione asincrona (non questa) è stata chiamata per StatementHandle ed è 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.
HY090 Lunghezza della stringa o del buffer non valida (DM) L'argomento TextLength è minore o uguale a 0, ma non uguale a SQL_NTS.

Un valore del parametro, impostato con SQLBindParameter, è un puntatore Null e il valore della lunghezza del parametro non è 0, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM o minore o uguale a SQL_LEN_DATA_AT_EXEC_OFFSET.

Un valore del parametro, impostato con SQLBindParameter, non era un puntatore Null, il tipo di dati C era SQL_C_BINARY o SQL_C_CHAR e il valore della lunghezza del parametro era minore di 0 ma non era SQL_NTS, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM o minore o uguale a SQL_LEN_DATA_AT_EXEC_OFFSET.

Un valore di lunghezza del parametro associato a SQLBindParameter è stato impostato su SQL_DATA_AT_EXEC; il tipo SQL era SQL_LONGVARCHAR, SQL_LONGVARBINARY o un tipo di dati specifico dell'origine dati lungo e il tipo di informazioni SQL_NEED_LONG_DATA_LEN in SQLGetInfo era "Y".
HY105 Tipo di parametro non valido Il valore specificato per l'argomento InputOutputType in SQLBindParameter è stato SQL_PARAM_OUTPUT e il parametro era un parametro di input.
HY109 Posizione del cursore non valida *StatementText contiene un'istruzione di aggiornamento o eliminazione posizionata e il cursore è stato posizionato (da SQLSetPos o SQLFetchScroll) in una riga che è stata eliminata o che non è stato possibile recuperare.
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.
HYC00 Funzionalità facoltativa non implementata La combinazione delle impostazioni correnti degli attributi delle istruzioni SQL_ATTR_CONCURRENCY e SQL_ATTR_CURSOR_TYPE non è supportata dal driver o dall'origine dati.

L'attributo di istruzione SQL_ATTR_USE_BOOKMARKS è stato impostato su SQL_UB_VARIABLE e l'attributo dell'istruzione SQL_ATTR_CURSOR_TYPE è stato impostato su un tipo di cursore per cui il driver non supporta i segnalibri.
HYT00 Timeout scaduto Periodo di timeout della query scaduto prima che l'origine dati restituisca il set di risultati. Il periodo di timeout viene impostato tramite SQLSetStmtAttr, SQL_ATTR_QUERY_TIMEOUT.
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.
IM017 Il polling è disabilitato in modalità di notifica asincrona Ogni volta che viene usato il modello di notifica, il polling è disabilitato.
IM018 SQLCompleteAsync non è stato chiamato per completare l'operazione asincrona precedente su questo handle. Se la chiamata di funzione precedente sull'handle restituisce SQL_STILL_EXECUTING e se la modalità di notifica è abilitata, è necessario chiamare SQLCompleteAsync sull'handle per eseguire la post-elaborazione e completare l'operazione.

Commenti

L'applicazione chiama SQLExecDirect per inviare un'istruzione SQL all'origine dati. Per altre informazioni sull'esecuzione diretta, vedere Esecuzione diretta. Il driver modifica l'istruzione in modo da usare il formato SQL usato dall'origine dati e quindi lo invia all'origine dati. In particolare, il driver modifica le sequenze di escape usate per definire determinate funzionalità in SQL. Per la sintassi delle sequenze di escape, vedere Sequenze di escape in ODBC.

L'applicazione può includere uno o più marcatori di parametro nell'istruzione SQL. Per includere un marcatore di parametro, l'applicazione incorpora un punto interrogativo (?) nell'istruzione SQL nella posizione appropriata. Per informazioni sui parametri, vedere Parametri delle istruzioni.

Se l'istruzione SQL è un'istruzione SELECT e se l'applicazione denominata SQLSetCursorName per associare un cursore a un'istruzione, il driver usa il cursore specificato. In caso contrario, il driver genera un nome di cursore.

Se l'origine dati è in modalità di commit manuale (che richiede l'avvio esplicito della transazione) e una transazione non è già stata avviata, il driver avvia una transazione prima di inviare l'istruzione SQL. Per altre informazioni, vedere Modalità di commit manuale.

Se un'applicazione usa SQLExecDirect per inviare un'istruzione COMMIT o ROLLBACK , non sarà interoperabile tra i prodotti DBMS. Per eseguire il commit o il rollback di una transazione, un'applicazione chiama SQLEndTran.

Se SQLExecDirect rileva un parametro data-at-execution, restituisce SQL_NEED_DATA. L'applicazione invia i dati usando SQLParamData e SQLPutData. Vedere SQLBindParameter, SQLParamData, SQLPutData e Invio di dati lunghi.

Se SQLExecDirect esegue un'istruzione di aggiornamento, inserimento o eliminazione ricercata che non influisce sulle righe nell'origine dati, la chiamata a SQLExecDirect restituisce SQL_NO_DATA.

Se il valore dell'attributo dell'istruzione SQL_ATTR_PARAMSET_SIZE è maggiore di 1 e l'istruzione SQL contiene almeno un marcatore di parametro, SQLExecDirect eseguirà l'istruzione SQL una volta per ogni set di valori di parametro delle matrici a cui punta l'argomento ParameterValuePointer nella chiamata a SQLBindParameter. Per altre informazioni, vedere Matrici di valori dei parametri.

Se i segnalibri sono attivati e viene eseguita una query che non supporta i segnalibri, il driver deve tentare di comerare l'ambiente in uno che supporti i segnalibri modificando un valore di attributo e restituendo SQLSTATE 01S02 (valore opzione modificato). Se l'attributo non può essere modificato, il driver deve restituire SQLSTATE HY024 (valore attributo non valido).

Nota

Quando si usa il pool di connessioni, un'applicazione non deve eseguire istruzioni SQL che modificano il database o il contesto del database, ad esempio l'istruzione USE database in SQL Server, che modifica il catalogo usato da un'origine dati.

Esempio di codice

Vedere SQLBindCol, SQLGetData e Programma ODBC di esempio.

Per informazioni su Vedere
Associazione di un buffer a una colonna in un set di risultati Funzione SQLBindCol
Annullamento dell'elaborazione delle istruzioni Funzione SQLCancel
Esecuzione di un'operazione di commit o rollback Funzione SQLEndTran
Esecuzione di un'istruzione SQL preparata Funzione SQLExecute
Recupero di più righe di dati Funzione SQLFetch
Recupero di un blocco di dati o scorrimento di un set di risultati Funzione SQLFetchScroll
Restituzione di un nome di cursore Funzione SQLGetCursorName
Recupero di una parte o di una colonna di dati Funzione SQLGetData
Restituzione del parametro successivo per l'invio di dati per Funzione SQLParamData
Preparazione di un'istruzione per l'esecuzione Funzione SQLPrepare
Invio dei dati dei parametri in fase di esecuzione Funzione SQLPutData
Impostazione di un nome di cursore Funzione SQLSetCursorName
Impostazione di un attributo di istruzione Funzione SQLSetStmtAttr

Vedi anche

Riferimento API ODBC
File di intestazione ODBC