Condividi tramite


Eseguire un'istruzione direttamente (ODBC)

Per eseguire un'istruzione direttamente e solo una volta

  1. 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.

  2. Chiamare SQLExecDirect per eseguire l'istruzione.

  3. 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

  1. 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.

  2. 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.

  3. Chiamare SQLExecDirect per eseguire l'istruzione. Il driver esegue in modo efficace l'istruzione S volte, una volta per ogni set di parametri.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. Inserire i valori dei dati nella matrice di buffer dei parametri associati.

  5. Chiamare SQLExecDirect per eseguire l'istruzione. Il driver esegue in modo efficace l'istruzione S volte, una volta per ogni set di parametri.

  6. 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.

Vedere anche

Altre risorse

Procedure per l'esecuzione di query (ODBC)