Megosztás:


Sorok beolvasása SQLBulkOperations használatával

Az SQLBulkOperations hívásával az adatok könyvjelzők használatával újra átvehetők egy sorhalmazba. A beolvasandó sorokat egy kötött könyvjelzőoszlop könyvjelzői azonosítják. A SQL_COLUMN_IGNORE értékkel rendelkező oszlopok nem lesznek beolvasva.

Ha tömeges lekéréseket szeretne végrehajtani az SQLBulkOperations használatával, az alkalmazás a következőket teszi:

  1. Lekéri és gyorsítótárazza az összes frissítendő sor könyvjelzőit. Ha egynél több könyvjelzőt használ, és oszlopalapú kötést használ, a könyvjelzők tömbben vannak tárolva; ha több könyvjelzőt használ, és sorszintű kötést használ, a könyvjelzők sorstruktúrák tömbjében vannak tárolva.

  2. A SQL_ATTR_ROW_ARRAY_SIZE utasítás attribútumot a beolvasni kívánt sorok számára állítja be, és a könyvjelző értékét vagy a könyvjelzők tömbét tartalmazó puffert a 0 oszlophoz köti.

  3. Szükség szerint beállítja az egyes oszlopok hossz/mutató pufferének értékét. Ez a karakterláncpufferekhez kötött oszlopok esetében az adatok bájthossza vagy az SQL_NTS, a bináris pufferekhez kötött oszlopok esetében az adatok bájthossza, valamint az SQL_NULL_DATA a NULL értékre állítandó oszlopokhoz. Az alkalmazás az alapértelmezett (ha létezik) vagy NULL (ha nem) értékre állítja az alapértelmezett oszlop hossz/mutató pufferében lévő értéket SQL_COLUMN_IGNORE.

  4. A SQLBulkOperations meghívása az Operation argumentummal, amely SQL_FETCH_BY_BOOKMARK-re van állítva.

Nincs szükség arra, hogy az alkalmazás a sorműveleti tömböt használja a művelet bizonyos oszlopokon való végrehajtásának megakadályozásához. Az alkalmazás úgy választja ki a beolvasni kívánt sorokat, hogy csak az adott sorok könyvjelzőit másolja a kötött könyvjelzőtömbbe.