OLE DB-Rowsets (SQL Server Compact)

Rowsets sind die zentralen Objekte, die OLE DB-Komponenten das Offenlegen und Ändern von Daten in tabellarischer Form ermöglichen. Ein Rowset-Objekt ist eine Menge von Zeilen, in der jede Zeile Datenspalten hat. Wenn der OLE DB-Anbieter für Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) verwendet wird, wird in den beiden folgenden Fällen ein Rowsetobjekt erstellt: ICommand::Execute gibt Daten zurück, oder IOpenRowset::OpenRowset wird direkt aufgerufen.

Verwenden von Rowsets

Die folgenden Aspekte wirken sich darauf aus, wie Rowsets in SQL Server Compact 3.5 behandelt werden:

  • SQL Server Compact 3.5 unterstützt nur das Abrufen jeweils einer Zeile. Sie können Zeilen nacheinander abrufen, indem Sie IRowset::GetNextRows(NULL, 0, 1...) aufrufen, oder Sie können eine bestimmte Zeile abrufen, indem Sie beim Aufrufen von IRowset::GetNextRows die Zeilennummer angeben.
  • Ein Rowset kann scrollfähig sein. Ist dies der Fall, können Sie IRowset::GetNextRows(NULL, -1, 1...) angeben.
  • Rowsets können laut ihrem Status veraltet sein, wenn die interne Ressource, auf der sie basieren, wegen einer Transaktionsbeendigung nicht mehr vorhanden ist.
  • Der OLE DB-Anbieter für SQL Server Compact 3.5 unterstützt nur Datenbindungen mit Übergabe als Wert (by value). Datenbindungen mit Übergabe als Verweis (by reference) werden nicht unterstützt.
  • SQL Server Compact 3.5 gibt immer berechnete Spaltenwerte zurück, wenn neue Zeilen eingefügt werden. Dadurch wird es Clients ermöglicht, diese Informationen sofort abzurufen. Für einen Client bedeutet dies, dass er den jeweiligen Identitätsspaltenwert einer neuen Zeile auch dann schon lesen kann, wenn die Zeile noch nicht durch Ausführen eines Commit in den Datenspeicher geschrieben wurde. Aus diesem Grund muss DBPROP_SERVERDATAONINSERT immer den Wert VARIANT_TRUE haben.
  • Es gibt weitere Eigenschaften, die verschiedenen Schnittstellen entsprechen, die für ein Rowset unterstützt werden können. Clients, die die Schnittstellen, die sie für die sich ergebende Schnittstelle verwenden möchten, nicht über den Eigenschaftenmechanismus anfordern, können nicht zwangsläufig auf diese Schnittstellen zugreifen. Dies gilt selbst dann, wenn der ausgewählte Cursortyp diese Funktionalität unterstützt. Weitere Informationen finden Sie unter Rowset-Eigenschaften (OLE DB).

Wenn Sie Rowsets verwenden, gibt es eine Reihe von Faktoren, die sich auf die Effizienz des jeweiligen Vorgangs auswirken. Weitere Informationen finden Sie unter Effizientes Verwenden von OLE DB-Rowsets.