Dela via


Raduppsättningsstorlek

Vilken raduppsättningsstorlek som ska användas beror på programmet. Skärmbaserade program följer vanligtvis en av två strategier. Den första är att ange raduppsättningens storlek till antalet rader som visas på skärmen. Om användaren ändrar storlek på skärmen ändrar programmet raduppsättningens storlek i enlighet med detta. Det andra är att ange raduppsättningens storlek till ett större tal, till exempel 100, vilket minskar antalet anrop till datakällan. Programmet rullar lokalt i raduppsättningen när det är möjligt och hämtar endast nya rader när det rullar utanför raduppsättningen.

Andra program, till exempel rapporter, tenderar att ange raduppsättningens storlek till det största antalet rader som programmet rimligen kan hantera – med en större raduppsättning minskar nätverkskostnaderna per rad ibland. Exakt hur stor en raduppsättning kan vara beror på storleken på varje rad och mängden tillgängligt minne.

Raduppsättningens storlek fastställs genom ett anrop till SQLSetStmtAttr med ett argument SQL_ATTR_ROW_ARRAY_SIZE. Programmet kan ändra raduppsättningens storlek, binda nya raduppsättningsbuffertar (genom att anropa SQLBindCol eller ange en bindningsförskjutning) även efter att rader har hämtats eller båda. Konsekvenserna av att ändra raduppsättningens storlek beror på funktionen:

  • SQLFetch och SQLFetchScroll använder raduppsättningens storlek vid tidpunkten för anropet för att avgöra hur många rader som ska hämtas. SQLFetchScroll med en FetchOrientation av SQL_FETCH_NEXT ökar dock markören baserat på raduppsättningen i föregående hämtning och hämtar sedan en raduppsättning baserat på den aktuella raduppsättningens storlek.

  • SQLSetPos använder den raduppsättningsstorlek som gäller från och med föregående anrop till SQLFetch eller SQLFetchScroll, eftersom SQLSetPos fungerar på en raduppsättning som redan har angetts. SQLSetPos hämtar också den nya raduppsättningsstorleken om SQLBulkOperations har anropats efter att raduppsättningens storlek har ändrats.

  • SQLBulkOperations använder raduppsättningens storlek som gäller vid tidpunkten för anropet, eftersom den utför åtgärder i en tabell oberoende av hämtade rader.