Esegui direttamente un'istruzione (ODBC)

Per eseguire direttamente un'istruzione e una sola volta

  1. Se l'istruzione include marcatori di parametro, usare SQLBindParameter per associare ogni parametro a una variabile di programma. Compilare le variabili di programma con i valori dei dati e quindi configurare i parametri di dati in fase di esecuzione.

  2. Chiamare SQLExecDirect per eseguire l'istruzione .

  3. 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 usando l'associazione di parametri a livello di 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 per contenere il numero di parametri elaborati.

    Impostare SQL_ATTR_PARAMS_STATUS_PTR in modo che punti a una matrice[S] di variabili SQLUSSMALLINT per contenere gli indicatori di stato dei parametri.

  2. Per ogni marcatore di parametro:

    Allocare una matrice di buffer di parametri S per archiviare i valori dei dati.

    Allocare una matrice di buffer di parametri S 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 di testo o immagine in fase di esecuzione dei dati.

    Inserire i valori dei dati S e le lunghezze dei dati S nelle matrici di parametri associati.

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

  4. 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 usando l'associazione di parametri a livello di riga

  1. Allocare una matrice[S] di strutture, dove S è il numero di set di parametri. La struttura ha un elemento per ogni parametro e ogni elemento ha due parti:

    La prima parte è una variabile del tipo di dati appropriato per contenere i dati del parametro.

    La seconda parte è una variabile SQLINTEGER che contiene 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 sulle dimensioni della struttura allocata nel passaggio 1.

    Impostare l'attributo SQL_ATTR_PARAMS_PROCESSED_PTR in modo che punti a una variabile SQLUINTEGER per contenere il numero di parametri elaborati.

    Impostare SQL_ATTR_PARAMS_STATUS_PTR in modo che punti a una matrice[S] di variabili SQLUSSMALLINT per contenere gli indicatori di stato dei parametri.

  3. 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 è un parametro data-at-execution, configurarlo.

  4. Compilare la matrice di buffer dei parametri associati con valori di dati.

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

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

Vedere anche

Procedure per l'esecuzione di query (ODBC)