Weiter Zurück [Inhalt] Online Suche im Handbuch

56.7 Cursor mit Visual C++/BASIC und MySQL

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.


Weiter Zurück [Inhalt] Online Suche im Handbuch