ASPNL logo (1 kb)
Tuesday, September 07, 2010




Microsoft MVP

.NET Codewise Community
<< vorige | overzicht | volgende >>

Wat is een recordset?

Een recordset is een verzameling records die geretourneerd wordt als we gegevens uit een database opvragen met SQL. ADO bevat het Recordset object, zodat je deze gegevens kunt manipuleren. Je kunt onder andere door de records in een recordset heen bladeren, de records wijzigen of records toevoegen (zolang de cursor niet ReadOnly is), de gegevens opslaan in een bestand, XML of een array.

Wat is een Cursor?

Om door de records heen te kunnen navigeren heeft een recordset een cursor. De cursor staat op het huidige record (mits er records in de recordset zitten). Er zijn verschillende typen cursors, met verschillende mogelijkheden. Hieronder staat een overzicht van de verschillende cursors:

Cursor Eigenschappen
adOpenForwardOnly Alleen van voor naar achter door de recordset bladeren.
Updates van anderen zijn niet zichtbaar.
adOpenStatic Heen en weer bladeren mogelijk.
Updates van anderen zijn niet zichtbaar.
adOpenDynamic Heen en weer bladeren mogelijk.
Updates van anderen zijn zichtbaar.
adOpenKeyset Zoals adOpenDynamic, maar met wat verschillende details.

Een gedetailleerd overzicht van cursor-eigenschappen vind je hier.

Wat is het Lock-type?

Een recordset kan alleen-lezen zijn, of wijzigbaar. Naast alleen-lezen zijn er drie soorten wijzigbare recordsets. Hieronder staat een overzicht met de mogelijke Lock-types:

Lock-type Eigenschappen
adLockReadOnly Alleen lezen
adLockPessimistic Zodra er wijzigingen in een record worden aangebracht, wordt deze gesloten voor andere gebruikers. Wanneer de Update methode wordt aangeroepen, wordt het record in de database gewijzigd en vrijgegeven.
adLockOptimistic Wijzigingen worden doorgevoerd in de database als de Update methode wordt aangeroepen. Pas dan probeert ADO een lock te krijgen.
adLockBatchOptimistic Handig als er meerdere wijzigingen gedaan moeten worden. Eerst pas je alle records in de recordset aan en vervolgens gebruik je de UpdateBatch methode om alle records in één keer te wijzigen in de database.

Welk Cursor- en Lock-type moet ik gebruiken?

Een recordset dat meer mogelijkheden heeft dan nodig is, verspilt behoorlijk wat geheugen en kost snelheid. Het is dus nodig om het beste type recordset te gebruiken voor wat je wilt. Hoef je geen updates te doen, dan gebruik je een ReadOnly recordset. In andere gevallen kun je over het algemeen het beste Optimistic of BatchOptimistic gebruiken.

Binnen ASP is het eigenlijk niet nodig om de wijzigingen van andere gebruikers te zien. Het is daarom verstandig om ForwardOnly of Static te gebruiken waar mogelijk. In deze tabel kun je zien wanneer je over moet schakelen naar Dynamic of Keyset cursors.

<< vorige | ^ naar boven | overzicht | volgende >>
copyright 2000-2007 ASPNL