André Laugks: PHP und CURSOR mit PostreSQL

Beitrag lesen

Hallo!

ich habe ein Script, [...]

Für das, was Du in Deinem Beispielscript vor hast, benötigst Du kein CURSOR.

for ($i=0; $i< $nOfRecords; $i++) {
  $r   = pg_query($conn, "FETCH getRecords;");
  print_r($row);

}

pg_fetch_* recht da völlig aus.

Der Unterschied zwischen einem LIMIT und CURSOR ist der, dass bei einem LIMIT die Anfrage für PostgreSQL erledigt ist. Bei einem CURSOR kannst Du in der Ergebnismenge hin und her wandern.

BEGIN;
DECLARE test CURSOR FOR SELECT spalten FROM tabelle; */
FETCH 100 FROM test; /* die ersten 100 Datensätze (1-100) */
FETCH 100 FROM test; /* die nächsten 100 Datensätze (101-200) */
FETCH -50 FROM test; /* die letzten 50 Datensätze (151-200) */
MOVE 2000 IN test;   /* Cursor auf Position 2000 setzen */
FETCH 100 FROM test; /* die nächsten 100 Datensätze (2000-2100) */
CLOSE test;
COMMIT;

André Laugks

--
Die Frau geht, die Hilti bleibt!