[PEAR] Sequences / nextId()

[PEAR] Sequences / nextId()

am 28.01.2005 20:22:05 von Marcus Fihlon

Hallo,

laut der Dokumentation von PEAR werden dort Sequences zur Verfuegung
gestellt. Da PEAR dabei nicht auf entsprechende DB-Funktionen zurueck
greift, nutzt es wahrscheinlich eine eigene Tabelle - richtig?

Informationen dazu enthaelt die PEAR-Dokumentation leider nicht. Auch
nicht, welchen Aufbau die Tabelle haben muss. Hat jemand vielleicht
einen Tip, wo man entsprechende Informationen dazu finden kann?

Hier habe ich alles durchgelesen, was ich dazu finden konnte:
http://pear.php.net/manual/en/package.database.db.intro-sequ ences.php#package.database.db.intro-sequences.note

Nur bloede, dass dort nicht genug Information vorhanden ist, um diese
Technologie zu nutzen...

Danke
Marcus

Re: [PEAR] Sequences / nextId()

am 28.01.2005 21:29:13 von Marcus Fihlon

Problem geloest - der User, mit dem auf die DB zugegriffen wird, braucht
entsprechende Rechte zum Erstellen von Tabellen. Dann wird fuer jede
Sequenz automatisch bei der ersten Nutzung eine Sequenz-Tabelle
angelegt - warum steht das nicht in der Doku?

Gruss
Marcus

Re: [PEAR] Sequences / nextId()

am 28.01.2005 22:35:58 von Thomas Schulz

Marcus Fihlon wrote in de.comp.lang.php.datenbanken:

> Problem geloest - der User, mit dem auf die DB zugegriffen wird,
> braucht entsprechende Rechte zum Erstellen von Tabellen. Dann wird fuer
> jede Sequenz automatisch bei der ersten Nutzung eine Sequenz-Tabelle
> angelegt - warum steht das nicht in der Doku?

Weil man das spätestens beim ersten Einsatz durch entsprechende
Warnings/Fehlermeldungen mitgeteilt bekommt?

Weil noch niemand der folgenden Aufforderung gefolgt ist:
"Do you think that something on this page is wrong?
Please file a bug report."

Weil es ein DB-spezifische Feature ist, das nur den entsprechenden
Datenbanktreiber (mysql) betrifft und weil man bei Unklarkeiten ganz
einfach im Quellcode nachschauen kann?

PEAR/DB/mysql.php:

/**
* Creates a new sequence
* ...
*/
function createSequence($seq_name)
{
$seqname = $this->getSequenceName($seq_name);
$res = $this->query("CREATE TABLE ${seqname} ".
'(id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,'.
' PRIMARY KEY(id))');
...
}


ThS.

Re: [PEAR] Sequences / nextId()

am 29.01.2005 17:32:20 von Marcus Fihlon

Thomas Schulz wrote:

> Weil man das spätestens beim ersten Einsatz durch entsprechende
> Warnings/Fehlermeldungen mitgeteilt bekommt?

Die Fehlermeldung, die PEAR netter Weise erzeugte, war alles andere
hilfreich. Im Gegenteil, sie fuehrte auf die falsche Faehrte.

> Weil es ein DB-spezifische Feature ist, das nur den entsprechenden
> Datenbanktreiber (mysql) betrifft und weil man bei Unklarkeiten ganz
> einfach im Quellcode nachschauen kann?

Was ich letztendlich auch gemacht habe. Dennoch finde ich, dass das in
die Dokumentation gehoert, denn dazu ist diese da - solche
Voraussetzungen zu dokumentieren. Was anderes bleibt der
PEAR-Entwicklern auch nicht uebrig - denn wie soll man sinnvoll eine
Bibliothek einsetzen, deren Dokumentation mangelhaft ist? Refactoring
kann da nur eine Notloesung sein und nicht ueber mangelhafte
Dokumentation hinweghelfen. Ja, ich weiss, bessermachen/mithelfen etc.
Aber gerade dazu habe ich eine Funktionsbibliothek gesucht - um Arbeit
zu sparen...

Gruss
Marcus