Freigeben über


Verwenden von Blockcursor mit APIs

API-Servercursor sind nicht auf das Abrufen jeweils einer Zeile beschränkt, sondern können pro Abrufvorgang mehrere Zeilen abrufen. Bei einer Client-/Serverdatenbank, wie Microsoft SQL Server 2005 ist es effizienter, mehrere Zeilen gleichzeitig abzurufen. Die Anzahl der bei einem Abrufvorgang zurückgegebenen Zeilen wird als Rowsetgröße bezeichnet. Cursor, die eine Rowsetgröße von mehr als eins aufweisen, werden als Blockcursor bezeichnet. Sie können bei den unterstützten APIs die Blockcursor folgendermaßen verwenden:

  • ODBC
    • Legen Sie das SQL_ATTR_ROWSET_SIZE-Anweisungsattribut auf die Größe des Rowsets fest.
    • Verwenden Sie die spalten- oder zeilenbezogene Bindung, um die Spalten an Variablenarrays zu binden, in die die Daten aus den zurückgegebenen Zeilen eingefügt werden. Die Anzahl der Elemente in den einzelnen Arrays entspricht der Rowsetgröße.
    • Jeder Aufruf von SQLFetchScroll ruft die Anzahl der Zeilen ab, die in SQL_ATTR_ROWSET_SIZE festgelegt wurden.
  • OLE DB
    • Ordnen Sie ein Array von Zeilenhandles zu, und binden Sie die Spalten, die durch die einzelnen Handles dargestellt werden, an ein Array von Variablen, in das die Daten der Spalten eingefügt werden.
    • Rufen Sie IRowset::GetNextRows mit dem cRows-Parameter, festgelegt auf die Anzahl der Handles im Array des Zeilenhandles, sowie der Adresse des Arrays der Zeilenhandles im prghRows-Parameter auf.
  • ADO
    • Dimensionieren Sie eine Variable vom Typ variant so, dass die Daten für die Anzahl von Zeilen, die Sie abfragen möchten, eingefügt werden können.
    • Positionieren Sie sich an die gewünschte Stelle im Cursor mithilfe der Methoden Move, MoveFirst, MoveLast, MoveNext und MovePrevious des Recordset-Objekts.
    • Rufen Sie die GetRows-Methode des Recordset-Objekts mit dem array-Parameter auf, der die Adresse des Variants enthält, in das die Zeilen eingefügt werden sollen, und mit dem Crows-Parameter, der die Anzahl der zurückzugebenden Zeilen angibt. Sie können optional den Start-Parameter verwenden, um die Abrufposition im Recordset anzuzeigen.

Siehe auch

Andere Ressourcen

Rowsets and SQL Server Cursors
Cursor Rowset Size

Hilfe und Informationen

Informationsquellen für SQL Server 2005