Dimensione del set di righe

Le dimensioni del set di righe da usare dipendono dall'applicazione. Le applicazioni basate sullo schermo seguono in genere una delle due strategie. La prima consiste nell'impostare le dimensioni del set di righe sul numero di righe visualizzate sullo schermo; se l'utente ridimensiona lo schermo, l'applicazione modifica le dimensioni del set di righe di conseguenza. La seconda consiste nell'impostare le dimensioni del set di righe su un numero maggiore, ad esempio 100, che riduce il numero di chiamate all'origine dati. L'applicazione scorre localmente all'interno del set di righe quando possibile e recupera nuove righe solo quando scorre all'esterno del set di righe.

Altre applicazioni, ad esempio i report, tendono a impostare le dimensioni del set di righe sul maggior numero di righe che l'applicazione può gestire ragionevolmente; con un set di righe maggiore, il sovraccarico di rete per riga viene talvolta ridotto. La dimensione di un set di righe dipende esattamente dalle dimensioni di ogni riga e dalla quantità di memoria disponibile.

Le dimensioni del set di righe vengono impostate da una chiamata a SQLSetStmtAttr con un argomentoAttributo di SQL_ATTR_ROW_ARRAY_SIZE. L'applicazione può modificare le dimensioni del set di righe, associare nuovi buffer del set di righe (chiamando SQLBindCol o specificando un offset di associazione) anche dopo il recupero delle righe o entrambi. Le implicazioni della modifica delle dimensioni del set di righe dipendono dalla funzione:

  • SQLFetch e SQLFetchScroll usano le dimensioni del set di righe al momento della chiamata per determinare il numero di righe da recuperare. Tuttavia, SQLFetchScroll con FetchOrientation di SQL_FETCH_NEXT incrementa il cursore in base al set di righe del recupero precedente, quindi recupera un set di righe in base alle dimensioni correnti del set di righe.

  • SQLSetPos usa le dimensioni del set di righe effettive stando alla chiamata precedente a SQLFetch o SQLFetchScroll, perché SQLSetPos opera su un set di righe già impostato. SQLSetPos rileverà anche le nuove dimensioni del set di righe se SQLBulkOperations è stato chiamato dopo la modifica delle dimensioni del set di righe.

  • SQLBulkOperations usa le dimensioni del set di righe effettive al momento della chiamata, perché esegue operazioni su una tabella indipendentemente da qualsiasi set di righe recuperato.