Funktionsprinzip | Index | pdr Konfiguration

## pdr Aufruf

pdr akzeptiert Optionen und Argumente.
Hinweis: Optionen können selbst Argumente haben, was nicht verwechselt werden darf.
Optionen werden grundsätzlich durch ein Minuszeichen eingeleitet. Ein zweites Minuszeichen kennzeichnet sog. lange Optionen. Alle verfügbaren Optionen und Argumente können mit pdr -? oder pdr --help aufgelistet werden.

### Optionen

-? | den Hilfebildschirm anzeigen
-V | die pdr-Versionsnummer anzeigen
-v | Ausgaben machen, ist diese Option nicht gesetzt, macht pdr nur dann Ausgaben, wenn Fehler aufgetreten sind
-c filename | die Datei filename als Konfigurationsdatei benutzen, diese Option hat Priorität gegenüber der standardmäßig benutzten Konfigurationsdatei ~/.pdrx
-l | die momentan verfügbaren collections auflisten
-a "name,type[,purpose]" | eine collection hinzufügen, das Argument ist eine Zeichenkette, die den Namen, den Typ und ggf. eine verbale Beschreibung oder den Zweck der neuen collection angibt, als Typen kommen in Frage n, r oder t (für numeric, ratio oder text)
-d name | eine collection löschen, als Argument muß der Name übergeben werden
-D | alle collections löschen, die collections * und # werden nicht gelöscht, sie werden nur geleert
-r | alle aktuellen rejections auflisten
-R | alle aktuellen rejections löschen
-e "expr" | die als Argument übergebene Zeichenkette als Ausdruck betrachten und auswerten
-t filename | eine Textdatei einlesen
-C filename | eine CSV-Datei einlesen
-x filename | eine XML-Datei einlesen
-n | keine in der Konfigurationsdatei vorkonfigurierten Datenquellen benutzen, nur die Kommandozeile
-i | die interaktive Betriebsart starten
-X filename | den Inhalt der gesamten Datenbank in eine XML-Datei schreiben, das Format ist kompatible zum Import über -x

### Argumente

Alles, was hinter dem Programmnamen pdr auf der Kommandozeile folgt und nicht mit einem Minuszeichen beginnt, wird als Argument gewertet. Alle Argumente werden zu einem einzigen Ausdruck zusammengefügt und gemeinsam abgearbeitet:
$ pdr 5.2 5n 8l -v \; Kommentar bis zum Ende der Zeile
Der resultierende Ausdruck lautet:
5.2 5n 8l ; Kommentar bis zum Ende der Zeile
-v gehört nicht dazu, dies ist eine erkennbare Option von pdr, sie wird nicht mit in den Ausdruck übernommen. Der backslash vor dem Semikolon ist eine Spezialität unter unixartigen Betriebssystemen. Bei solchen wertet die shell ihrerseits oft das Semikolon aus, was uns jedoch als Kommentartrennzeichen dient. Um dies zu verhindern, muß man ihm einen backslash voranstellen. Dieser wird allerdings bereits von der jeweiligen shell entfernt und gelangt gar nicht in die Eingabe von pdr.

### Fallbeispiele

Wichtig sind die Optionen zur Handhabung von collections. -l bzw. --list-collections listet zunächst alle vorhandenen collections auf und liefert ein paar statistische Daten:
$ pdr -l
name type table recs first last purpose
# text C1 160 2008-11-25 18:45:00 2010-01-02 21:55:37 Kommentare
* numeric C0 1636 2008-11-25 05:00:00 2010-01-03 12:10:00 Blutzucker
h numeric C6 1 2009-05-19 16:00:00 2009-05-19 16:00:00 HbA1c
l numeric C3 707 2008-11-25 05:00:00 2010-01-03 06:26:01 Basisinsulin
m numeric C4 612 2009-03-04 05:00:00 2010-01-03 06:26:01 Tabletten
n numeric C2 1275 2008-11-25 05:00:00 2010-01-03 12:10:00 Bolusinsulin
x numeric C5 119 2009-03-22 09:28:09 2010-01-03 10:31:01 Experimentalmessungen
Diese Auflistung zeigt Name und Typ jeder collection, die physische SQL-Tabelle in der Datenbank, die Anzahl der dort befindlichen Zeilen, d.h. Meßwerte sowie den Zeitstempel des ältesten und des jüngsten Eintrags. Am Ende ist die jeweilige Beschreibung der collections zu sehen, sofern eine angegeben wurde.
Mit -a bzw. --add-collection und einem string-Argument läßt sich eine collection hinzugügen:
$ pdr -a "k,n"
$ pdr -l
name type table recs first last purpose
# text C1 160 2008-11-25 18:45:00 2010-01-02 21:55:37 Kommentare
* numeric C0 1636 2008-11-25 05:00:00 2010-01-03 12:10:00 Blutzucker
h numeric C6 1 2009-05-19 16:00:00 2009-05-19 16:00:00 HbA1c
k numeric C7 0
l numeric C3 707 2008-11-25 05:00:00 2010-01-03 06:26:01 Basisinsulin
m numeric C4 612 2009-03-04 05:00:00 2010-01-03 06:26:01 Tabletten
n numeric C2 1275 2008-11-25 05:00:00 2010-01-03 12:10:00 Bolusinsulin
x numeric C5 119 2009-03-22 09:28:09 2010-01-03 10:31:01 Experimentalmessungen
Das Argument enthält den Namen der neuen collection, ein Komma und dahinter den Typ in Form von n (für numeric), r (für ratio) oder t (für text).
Eine nicht mehr benötigte collection kann mit -d bzw. --delete-collection und dem Namen der collection gelöscht werden:
$ pdr -d k
Sämtliche collections können mit -D bzw. --delete-all-collections gelöscht werden. Die collections * und # bleiben dabei erhalten, werden aber geleert:
$ pdr -D
$ pdr -l
name type table recs first last purpose
# text C1 0 Kommentare
* numeric C0 0 Blutzucker
Zwei Optionen dienen der Behandlung von rejections, d.h. zurückgewiesenen Daten, bei denen ein erkennbares Problem vorlag, aufgrunddessen die Daten nicht in die Datenbank übernommen werden konnten. Diese Daten gelangen dann in eine Schattentabelle. pdr liefert beim Auftreten solcher Fehler eine Ausschrift:
at least one expression has been rejected, try -r to list rejections
Mit -r bzw. --list-rejections können diese Daten nachträglich angezeigt werden:
$ pdr -r
timestamp expression
2010-01-03 17:46:20 12.0k (Fehler: die collection k existiert nicht)
Wenn tatsächlich ein Schreibfehler vorliegt, kann die Eingabe wiederholt werden. Nach erfolgter Korrektur aller rejections kann die Schattentabelle geleert werden:
$ pdr -R
Die Option -e bzw. --expression erlaubt die Angabe jeweils eines Ausdrucks, der zur Eingabe benutzt wird:
$ pdr -e "5.2" -e "2009-12-31 17:28:03 7.9"
Die Option kann mehrfach verwendet werden, was jeweils einen neuen Ausdruck erfordert. Die Ausdrücke bleiben untereinander unabhängig und werden einzeln verarbeitet.
Die Option -n bzw. --none erlaubt das Außerkraftsetzen aller konfigurierten Datenquellen. Dies dient dem Fall, daß der Benutzer in kurzer Zeit mehrfach hintereinander Aufrufe des Programms tätigt, z.B. um Eingaben über die Kommandozeile durchzuführen. Viele mail server melden dann beispielsweise, daß pro Minute nur eine bestimmte Anzahl an Logins durchgeführt werden darf o.ä. Das ständige Herstellen der Verbindung kostet zudem spürbar Laufzeit. Mit -n arbeitet man ganz privat einfach auf der lokalen Datenbank.

Funktionsprinzip | Index | pdr Konfiguration