Eseguire un'istruzione direttamente (ODBC)
Per eseguire un'istruzione direttamente e solo una volta
Se l'istruzione include marcatori di parametro, utilizzare SQLBindParameter per associare ciascun 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 si utilizzano parametri di input data-at-execution, SQLExecDirect restituisce SQL_NEED_DATA. Inviare i dati in blocchi utilizzando 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 le matrici delle lunghezze e dei valori dei dati di parametro 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 si utilizzano parametri di input data-at-execution, SQLExecDirect restituisce SQL_NEED_DATA. Inviare i dati in blocchi utilizzando 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 in modo che l'indicatore di misura dei valori dei dati e delle lunghezze dei dati del parametro punti alle rispettive variabili nel primo elemento della matrice di strutture allocata 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 si utilizzano parametri di input data-at-execution, SQLExecDirect restituisce SQL_NEED_DATA. Inviare i dati in blocchi utilizzando SQLParamData e SQLPutData.
Nota L'associazione per colonna e l'associazione per riga vengono utilizzate più di frequente insieme alla funzione SQLPrepare e a SQLExecute rispetto a SQLExecDirect.