Recupero di righe con SQLBulkOperations

I dati possono essere recuperati in un set di righe usando segnalibri tramite una chiamata a SQLBulkOperations. Le righe da recuperare sono identificate dai segnalibri in una colonna segnalibro associata. Le colonne con valore SQL_COLUMN_IGNORE non vengono recuperate.

Per eseguire operazioni di recupero bulk con SQLBulkOperations, l'applicazione esegue le operazioni seguenti:

  1. Recupera e memorizza nella cache i segnalibri di tutte le righe da aggiornare. Se vengono usati più segnalibri e binding a livello di colonna, i segnalibri vengono archiviati in una matrice; se vengono utilizzati più segnalibri e binding a livello di riga, i segnalibri vengono archiviati in una matrice di strutture di righe.

  2. Imposta l'attributo dell'istruzione SQL_ATTR_ROW_ARRAY_SIZE sul numero di righe da recuperare e associa il buffer contenente il valore del segnalibro o la matrice di segnalibri alla colonna 0.

  3. Imposta il valore per il buffer di lunghezza/indicatore di ogni colonna in base alle esigenze. Si tratta della lunghezza in byte dei dati o di SQL_NTS per le colonne legate a buffer di stringhe, della lunghezza in byte dei dati per le colonne legate a buffer binari e di SQL_NULL_DATA per le colonne da impostare a NULL. L'applicazione imposta su SQL_COLUMN_IGNORE il valore del buffer di lunghezza/indicatore delle colonne che devono essere impostate al loro valore predefinito (se esiste) o NULL (se non esiste).

  4. Chiama SQLBulkOperations con l'argomento Operation impostato su SQL_FETCH_BY_BOOKMARK.

Non è necessario che l'applicazione usi la matrice di operazioni di riga per impedire l'esecuzione dell'operazione su determinate colonne. L'applicazione seleziona le righe da recuperare copiando solo i segnalibri per tali righe nella matrice di segnalibri associata.