Online Suche im Handbuch |
Serverside cursors funktionieren mit MySQL, wie schon anfangs erwähnt, nicht. MySQL verfügt über keine Pre-oder Postprozessoren, die z.B. Operationen auf SETs und die Positionierung von Forward - und Backward Cursors regeln könnten.
Daher möchte ich mich hier besonders auf Beschreibung der oft überlegenen, und bei Microsoft gut dokumentierten clientside cursors oder auch frontend cursors genannten Cursor Lösungen konzentrieren.
Bis zur Version SQL Server 6.0, die im wesentlichen auf SYBASE SQL beruhte,
konnte Microsoft keine Bibliotheken zum vorwärts und rückwärts Scrollen in
einem result set
anbieten. Die Folge war, daß Microsoft hierfür das
Verhalten von Cursors in der Client API
emulieren mußte. Diese Routinen
finden sich in der DBLibrary. Diese läßt sich mit allen Visual
Basic/C++, JAVA Programmiersprachen ansprechen. Inzwischen hat Microsoft das
ODBC Interface entwickelt, welches Teile dieser Cursor Bibliotheken
enthält.
Hier finden Sie eine Beschreibung über Cursor, so, wie Microsoft diese mit ODBC 3.0 / 2.5 (update) implementiert. Eine ausführliche Beschreibung für Visual Basic 5.0, ACCESS 97, EXCEL 97.... http://www.hipstream.force9.co.uk/dissertation/week5/ODBC.html ist ebenfalls enthalten.
Die DBLibrary kommuniziert gewöhnlich mit der SQL Datenbank, und erwartet das result set zurück, bei Microsoft als TDS (Tabular Data Stream) implementiert. Dieses result set wird dann von der DBLibrary gecacht, und an den Client übergeben. Der Client kann dann dieses result set bearbeiten, ändern, darin Daten löschen, u.s.w. Diese werden dann entweder auf Befehl oder nach einem Timeout auf den SQL Server zurückgeschrieben.
Dieses Caching hat allerdings auch einige Grenzen, die hier nicht verschwiegen werden sollen:
Auf der Website http://www.pbc.ottawa.on.ca sind viele Beispiele zur Implementierung von Cursors mit Visual Basic und der Library DBWiz beschrieben.
Online Suche im Handbuch |