Aggiornamento dati con SQLSetPos

Le applicazioni possono aggiornare o eliminare qualsiasi riga nel set di righe con SQLSetPos. La chiamata a SQLSetPos è un'alternativa pratica alla creazione e all'esecuzione di un'istruzione SQL. Consente a un driver ODBC di supportare gli aggiornamenti posizionati anche quando l'origine dati non supporta le istruzioni SQL posizionate. Fa parte del paradigma di ottenere l'accesso completo al database tramite chiamate di funzione.

SQLSetPos opera sul set di righe corrente e può essere usato solo dopo una chiamata a SQLFetchScroll. L'applicazione specifica il numero della riga da aggiornare, eliminare o inserire e il driver recupera i nuovi dati per tale riga dai buffer del set di righe. È anche possibile usare SQLSetPos per designare una riga specificata come riga corrente o per aggiornare una determinata riga nel set di righe dall'origine dati.

Le dimensioni del set di righe vengono impostate da una chiamata a SQLSetStmtAttr con un argomentoAttributo di SQL_ATTR_ROW_ARRAY_SIZE. SQLSetPos, tuttavia, usa una nuova dimensione del set di righe solo dopo una chiamata a SQLFetch o SQLFetchScroll. Ad esempio, se le dimensioni del set di righe vengono modificate, SQLSetPos viene chiamato e quindi viene chiamato SQLFetch o SQLFetchScroll, e la chiamata a SQLSetPos usa le dimensioni del set di righe precedente mentre SQLFetch o SQLFetchScroll usano le nuove dimensioni del set di righe.

La prima riga nel set di righe è il numero di riga 1. L'argomento RowNumber in SQLSetPos deve identificare una riga nel set di righe, ovvero il relativo valore deve essere appartenere all'intervallo compreso tra 1 e il numero di righe recuperate più di recente (che può essere inferiore alle dimensioni del set di righe). Se RowNumber è 0, l'operazione viene applicata a ogni riga nel set di righe.

Poiché la maggior parte dell'interazione con i database relazionali viene eseguita tramite SQL, SQLSetPos non è ampiamente supportato. Tuttavia, un driver può facilmente emularlo creando ed eseguendo un'istruzione UPDATE o DELETE.

Per determinare le operazioni supportate da SQLSetPos, un'applicazione chiama SQLGetInfo con le opzioni di informazione SQL_DYNAMIC_CURSOR_ATTRIBUTES1, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1, SQL_KEYSET_CURSOR_ATTRIBUTES1 o SQL_STATIC_CURSOR_ATTRIBUTES1 (a seconda del tipo di cursore).

Questa sezione contiene i seguenti argomenti: