Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In moderne schermtoepassingen schuift de gebruiker achteruit en vooruit door de gegevens. Voor dergelijke toepassingen is het een probleem om terug te keren naar een eerder opgehaalde rij. Een mogelijkheid is om de cursor te sluiten en opnieuw te openen en vervolgens rijen op te halen totdat de cursor de vereiste rij bereikt. Een andere mogelijkheid is om de resultatenset te lezen, deze lokaal op te cachen en schuiven in de toepassing te implementeren. Beide mogelijkheden werken alleen goed met kleine resultatensets en de laatste mogelijkheid is moeilijk te implementeren. Een betere oplossing is het gebruik van een schuifbare cursor, die achteruit en vooruit kan gaan in de resultatenset.
Een schuifbare cursor wordt vaak gebruikt in moderne schermtoepassingen waarin de gebruiker heen en weer door de gegevens schuift. Toepassingen moeten echter alleen scrollbare cursors gebruiken wanneer alleen-vooruit cursors de taak niet kunnen uitvoeren, omdat scrollbare cursors over het algemeen duurder zijn dan alleen-vooruit cursors.
De mogelijkheid om achteruit te gaan leidt tot een vraag die niet van toepassing is op cursors die alleen vooruit zijn: Moet een schuifbare cursor wijzigingen detecteren die eerder zijn opgehaald in rijen? Dat wil zeggen dat er bijgewerkte, verwijderde en nieuw ingevoegde rijen moeten worden gedetecteerd?
Deze vraag doet zich voor omdat de definitie van een resultatenset - de set rijen die aan bepaalde criteria voldoen - niet wordt aangegeven wanneer rijen worden gecontroleerd om te zien of ze aan die criteria voldoen, en ook niet of rijen dezelfde gegevens moeten bevatten telkens wanneer ze worden opgehaald. Met de eerdere weglating kunnen scrollbare cursors detecteren of rijen zijn ingevoegd of verwijderd, terwijl de laatstgenoemde verandering het mogelijk maakt om bijgewerkte gegevens te detecteren.
De mogelijkheid om wijzigingen te detecteren is soms nuttig, soms niet. Een boekhoudtoepassing heeft bijvoorbeeld een cursor nodig die alle wijzigingen negeert; het verdelen van boeken is onmogelijk als de cursor de meest recente wijzigingen weergeeft. Aan de andere kant heeft een luchtvaartmaatschappijreserveringssysteem een cursor nodig die de meest recente wijzigingen in de gegevens weergeeft; zonder een dergelijke cursor moet de database voortdurend opnieuw worden opgevraagd om de meest up-to-datumvluchtbeschikbaarheid weer te geven.
ODBC definieert vier verschillende typen schuifbare cursors om de behoeften van verschillende toepassingen te dekken. Deze cursors variƫren zowel in onkosten als in hun vermogen om wijzigingen in de resultatenset te detecteren. Houd er rekening mee dat als een schuifbare cursor wijzigingen in rijen kan detecteren, deze dit alleen kan doen wanneer hij probeert die rijen opnieuw op te halen; de gegevensbron kan de cursor niet informeren over wijzigingen in de momenteel opgehaalde rijen. Houd er rekening mee dat ook de zichtbaarheid van wijzigingen wordt bepaald door het niveau van transactieisolatie; Zie Transactieisolatie voor meer informatie.
Deze sectie bevat de volgende onderwerpen.