Chapter 2. Cursor-Schnittstellen

Table of Contents

SQL-Cursors
Cursors serialisieren
Mischen von Cursors verschiedener Typen

Die Cursor-Interfaces benutzen nur die wichtigsten Methoden zum Zugriff externe Datenquellen; alle Cursor-Objekte erlauben:

Curor-Objekte sind persistent und können mit serialze() serialisiert werden. Da sie nur Datensätze referenzieren sind sie entsprechend platzsparend.

SQL-Cursors

Als erstes Beispie verwenden wir den SQL-Cursor der Klasse 'cursor_sql'. Um diesen zu konstruieren muss zunächst eine globale Datenverbindung für alle SQL-Cursors festgelegt werden.


$db =& new dbctrl ('localhost', 'mydb', 'sven', 'secret');
cursor_sql::set_db ($db);

      

Ein Cursor kann nun ohne Parameter erzeugt werden:


$c =& new cursor_sql ();

      

Nun muss die Datenquelle ('source') festgelegt werden. Bei SQL-Cursors ist dies der Name einer Tabelle aus der gelesen werden soll:


$c->set_source ('my_table');

      

Nun können Datensätze angefordert werden. Die Methode query() erwartet dazu eine WHERE-Klausel (ohne WHERE-Schlüsselwort) und optional eine Teilklausel, z.B. zum sortieren der Records:


$c->query ('age<23', 'ORDER BY age ASC');
$c->query ('age<23');

      

Sollen alle Records ausgelesen werden, sind keine Paramter notwendig:


$c->query ();

      

Nun können die angeforderten Records einzeln ausgelesen werden:


while ($record =& $c->get ())
   debug_dump ($record);