Eseguire un'istruzione direttamente (ODBC)
Si applica a: SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di strumenti analitici (PDW)
Per eseguire un'istruzione direttamente e solo una volta
Se l'istruzione include marcatori di parametro, usare SQLBindParameter per associare ogni parametro a una variabile di programma. Inserire nelle variabili di programma i valori dei dati e quindi configurare tutti i parametri data-at-execution.
Chiamare SQLExecDirect per eseguire l'istruzione .
Se vengono usati parametri di input di dati in fase di esecuzione, SQLExecDirect restituisce SQL_NEED_DATA. Inviare i dati in blocchi usando SQLParamData e SQLPutData.
Per eseguire un'istruzione più volte utilizzando l'associazione di parametri per colonna
Chiamare SQLSetStmtAttr per impostare gli attributi seguenti:
Impostare SQL_ATTR_PARAMSET_SIZE sul numero di set (S) di parametri.
Impostare SQL_ATTR_PARAM_BIND_TYPE su SQL_PARAMETER_BIND_BY_COLUMN.
Impostare l'attributo SQL_ATTR_PARAMS_PROCESSED_PTR in modo che punti a una variabile SQLUINTEGER che contenga il numero di parametri elaborati.
Impostare SQL_ATTR_PARAMS_STATUS_PTR in modo che punti a una matrice [S] di variabili SQLUSSMALLINT contenente gli indicatori di stato dei parametri.
Per ogni marcatore di parametro:
Allocare una matrice di buffer di S parametri per archiviare i valori dei dati.
Allocare una matrice di buffer di S parametri per archiviare le lunghezze dei dati.
Chiamare SQLBindParameter per associare il valore dei dati del parametro e le matrici di lunghezza dei dati al parametro di istruzione.
Configurare tutti i parametri data-at-execution di tipo text o image.
Inserire S valori dei dati e S lunghezze dei dati nella matrice di parametri associati.
Chiamare SQLExecDirect per eseguire l'istruzione . Il driver esegue in modo efficace l'istruzione S volte, una volta per ogni set di parametri.
Se vengono usati parametri di input di dati in fase di esecuzione, SQLExecDirect restituisce SQL_NEED_DATA. Inviare i dati in blocchi usando SQLParamData e SQLPutData.
Per eseguire un'istruzione più volte utilizzando l'associazione di parametri per riga
Allocare una matrice [S] di strutture, dove S è il numero di set di parametri. Nella struttura è presente un elemento per ogni parametro e ogni elemento è costituito da due parti:
La prima parte è una variabile del tipo di dati appropriato che contiene i dati dei parametri.
La seconda parte è una variabile SQLINTEGER che deve contenere l'indicatore di stato.
Chiamare SQLSetStmtAttr per impostare gli attributi seguenti:
Impostare SQL_ATTR_PARAMSET_SIZE sul numero di set (S) di parametri.
Impostare SQL_ATTR_PARAM_BIND_TYPE sulla dimensione della struttura allocata nel Passaggio 1.
Impostare l'attributo SQL_ATTR_PARAMS_PROCESSED_PTR in modo che punti a una variabile SQLUINTEGER che contenga il numero di parametri elaborati.
Impostare SQL_ATTR_PARAMS_STATUS_PTR in modo che punti a una matrice [S] di variabili SQLUSSMALLINT contenente gli indicatori di stato dei parametri.
Per ogni marcatore di parametro, chiamare SQLBindParameter per puntare il valore dei dati del parametro e il puntatore alla lunghezza dei dati alle relative variabili nel primo elemento della matrice di strutture allocate nel passaggio 1. Se il parametro è di tipo data-at-execution, configurarlo.
Inserire i valori dei dati nella matrice di buffer dei parametri associati.
Chiamare SQLExecDirect per eseguire l'istruzione . Il driver esegue in modo efficace l'istruzione S volte, una volta per ogni set di parametri.
Se vengono usati parametri di input di dati in fase di esecuzione, SQLExecDirect restituisce SQL_NEED_DATA. Inviare i dati in blocchi usando SQLParamData e SQLPutData.
Nota L'associazione a livello di colonna e riga viene in genere usata in combinazione con la funzione SQLPrepare e SQLExecute rispetto a SQLExecDirect.