Commit 6e897f034e2d877c7a7c1fbbcae623969089f8cd

Authored by Georg Hopp
1 parent 35941a52

Initial repository layout

Too many changes to show.

To preserve performance only 23 of 23+ files are displayed.

  1 +#include <postgres.h>
  2 +#include <string.h>
  3 +#include <fmgr.h>
  4 +#include <executor/executor.h>
  5 +
  6 +PG_FUNCTION_INFO_V1(get_int4_record_val);
  7 +
  8 +Datum get_int4_record_val(PG_FUNCTION_ARGS) {
  9 + TupleTableSlot* t=(TupleTableSlot*)PG_GETARG_POINTER(0);
  10 + text* valName=(text*)PG_GETARG_POINTER(1);
  11 + int32 val;
  12 + bool isnull;
  13 +
  14 + val=DatumGetInt32(GetAttributeByName(t, VARDATA(valName), &isnull));
  15 + if(isnull)
  16 + PG_RETURN_NULL();
  17 +
  18 + PG_RETURN_INT32(val);
  19 +}
... ...
  1 +BEGIN
  2 +IF current_user = 'guest' THEN
  3 +NEW.usesuper := 'f';
  4 +NEW.usecatupd := 'f';
  5 +END IF;
  6 +RETURN NEW;
  7 +END;
... ...
  1 +psql:cr_tables.sql:93: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »land__id__seq« für die »serial«-Spalte »land._id_«
  2 +psql:cr_tables.sql:93: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »land_pkey« für Tabelle »land«
  3 +psql:cr_tables.sql:121: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »ort__id__seq« für die »serial«-Spalte »ort._id_«
  4 +psql:cr_tables.sql:121: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »ort_pkey« für Tabelle »ort«
  5 +psql:cr_tables.sql:158: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »adresse__id__seq« für die »serial«-Spalte »adresse._id_«
  6 +psql:cr_tables.sql:158: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »adresse_pkey« für Tabelle »adresse«
  7 +psql:cr_tables.sql:213: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »person__id__seq« für die »serial«-Spalte »person._id_«
  8 +psql:cr_tables.sql:213: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »person_pkey« für Tabelle »person«
  9 +psql:cr_tables.sql:248: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »wohnt_pkey« für Tabelle »wohnt«
  10 +psql:cr_tables.sql:271: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »firma__id__seq« für die »serial«-Spalte »firma._id_«
  11 +psql:cr_tables.sql:271: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »firma_pkey« für Tabelle »firma«
  12 +psql:cr_tables.sql:307: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »abteilung__id__seq« für die »serial«-Spalte »abteilung._id_«
  13 +psql:cr_tables.sql:307: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »abteilung_pkey« für Tabelle »abteilung«
  14 +psql:cr_tables.sql:355: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »arbeit_pkey« für Tabelle »arbeit«
  15 +psql:cr_tables.sql:394: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »konten_typen_pkey« für Tabelle »konten_typen«
  16 +psql:cr_tables.sql:414: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »used_konten_pkey« für Tabelle »used_konten«
  17 +psql:cr_tables.sql:440: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »kontenplan__id__seq« für die »serial«-Spalte »kontenplan._id_«
  18 +psql:cr_tables.sql:440: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »kontenplan_pkey« für Tabelle »kontenplan«
  19 +psql:cr_tables.sql:493: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »konto_pkey« für Tabelle »konto«
  20 +psql:cr_tables.sql:522: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »buchung_pkey« für Tabelle »buchung«
  21 +psql:cr_tables.sql:720: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »benutzer__id__seq« für die »serial«-Spalte »benutzer._id_«
  22 +psql:cr_tables.sql:720: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »benutzer_pkey« für Tabelle »benutzer«
  23 +psql:cr_tables.sql:758: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »rechte_pkey« für Tabelle »rechte«
  24 +psql:cr_tables.sql:835: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »admin_pkey« für Tabelle »admin«
  25 +psql:cr_tables.sql:874: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »effektive_rechte_pkey« für Tabelle »effektive_rechte«
  26 +psql:cr_tables.sql:914: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »session_pkey« für Tabelle »session«
  27 +psql:cr_tables.sql:937: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »kunde__id__seq« für die »serial«-Spalte »kunde._id_«
  28 +psql:cr_tables.sql:937: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »kunde_pkey« für Tabelle »kunde«
  29 +psql:cr_tables.sql:1038: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »anbieter__id__seq« für die »serial«-Spalte »anbieter._id_«
  30 +psql:cr_tables.sql:1038: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »anbieter_pkey« für Tabelle »anbieter«
  31 +psql:cr_tables.sql:1110: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »verkaeufer__id__seq« für die »serial«-Spalte »verkaeufer._id_«
  32 +psql:cr_tables.sql:1110: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »verkaeufer_pkey« für Tabelle »verkaeufer«
  33 +psql:cr_tables.sql:1193: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »warengruppe__id__seq« für die »serial«-Spalte »warengruppe._id_«
  34 +psql:cr_tables.sql:1193: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »warengruppe_pkey« für Tabelle »warengruppe«
  35 +psql:cr_tables.sql:1284: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »produkt_typen_pkey« für Tabelle »produkt_typen«
  36 +psql:cr_tables.sql:1311: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »typ_table_columns_pkey« für Tabelle »typ_table_columns«
  37 +psql:cr_tables.sql:1344: HINWEIS: CREATE TABLE erstellt implizit eine Sequenz »produkt__id__seq« für die »serial«-Spalte »produkt._id_«
  38 +psql:cr_tables.sql:1344: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt implizit einen Index »produkt_pkey« für Tabelle »produkt«
... ...
  1 +begin;
  2 +
  3 +\i plpgsql_funcs/cr_func_generic.sql
  4 +
  5 +COMMENT ON DATABASE shop IS
  6 + '<H3><U>Allgemeine Kommentare:</U></H3>'
  7 + 'die Vergabe der Triggernamen folgt einem bestimmten Schema:<BR><BR>'
  8 +
  9 + ' &nbsp;&lt;TABLE&gt;_trigger&lt;NR&gt;_on_'
  10 + '[change|insert|update|delete]_&lt;DESCR&gt;<BR><BR>'
  11 +
  12 + 'wobei &lt;TABLE&gt; der Tabellenname ist, fuer den der Trigger definiert '
  13 + 'wurde &lt;NR&gt; eine fortlaufende Nummer (1,2,...,n) fuer die zu der '
  14 + 'Tabelle definierten Trigger, "change" steht fuer "insert und update" und '
  15 + '&lt;DESCR&gt; ist eine frei vergebbare Beschreibung dessen was der '
  16 + 'Trigger tut. Dieses Schema dient hauptsaechlich dem Zweck eine '
  17 + 'Reihenfolge fuer die Ausfuehrung der Trigger definieren zu koennen. '
  18 + 'Da postgreSQL die Trigger zu einer Aktion in alphabetisch aufsteigender '
  19 + 'Reihenfolge ausfuehrt laesst sich uber &lt;NR&gt; bestimmen in welcher '
  20 + 'Reihenfolge die Trigger ausgefuehrt werden, <BR><BR>'
  21 +
  22 + ' &nbsp;..._trigger1_... =&gt; ..._trigger2_... =&gt; ...<BR><BR>'
  23 +
  24 + '<HR><BR>'
  25 + 'ich muss zumindest ganz am schluss aber besser noch frueher Transaktionen '
  26 + 'in meine Funktionen einbauen. Ich glaube das diese idealerweise in den '
  27 + 'plpgsql Funktionen eingebaut werden, dann kann man spaeter in PHP oder '
  28 + 'womit auch immer diese Funktionen nutzen und hat automatisch bessere '
  29 + 'Performance....aus demselben Grund ist es im Moment noch nicht unbedingt '
  30 + 'notwendig transaktionen einzubauen, wenn konsequent hauptsaechlich die '
  31 + 'Funktionen genutzt werden.<BR>'
  32 + 'OK, ich revidiere meine Meinung, Transaktionen sollten im hoeheren Level '
  33 + 'implementiert werden, alleine schon deshalb weil BEGIN WORK nicht '
  34 + 'innerhalb einer plpgsql Funktion nicht funtioniert, wenn krasse Feler in '
  35 + 'plpgsql Funktionen auftreten (solche die sich nicht beheben lassen) '
  36 + 'sollte man konsequent RAISE EXCEPTION nutzen um den ganzen Funktionsblock '
  37 + 'abzubrechen, dadurch werden auch alle aenderungen die die Funktion '
  38 + 'gemacht hat wieder zurueckgesetzt.<BR><BR>'
  39 +
  40 + '<HR><BR>'
  41 +
  42 + 'alle Kommentare in der Datenbank muessen zu HTML konvertiert werden.'
  43 + '<BR><BR><HR>';
  44 +
  45 +-- generic Users
  46 +-- [
  47 +-- create group guest;
  48 +-- create group customer;
  49 +-- create group admin;
  50 +
  51 +-- create user guest ENCRYPTED PASSWORD 'guest'
  52 +-- NOCREATEDB NOCREATEUSER in group guest;
  53 +-- ]
  54 +
  55 +-- Schemas
  56 +-- [
  57 +create schema trigger_func; -- Schema fuer Triggerfunktionen
  58 +COMMENT ON SCHEMA trigger_func IS 'Schema fuer Triggerfunktionen';
  59 +create schema adresse; -- alles zu Adressdaten
  60 +COMMENT ON SCHEMA adresse IS 'alles zu Adressdaten';
  61 +create schema person; -- alles zu Personen
  62 +COMMENT ON SCHEMA person IS 'alles zu Personen';
  63 +-- nur zum testen [ --
  64 +grant USAGE ON SCHEMA person TO GROUP guest;
  65 +-- ] --
  66 +create schema firma; -- alles zu Firmen
  67 +COMMENT ON SCHEMA firma IS 'alles zu Firmen';
  68 +create schema fibu; -- alles zu Konten etc.
  69 +COMMENT ON SCHEMA fibu IS 'alles zu Konten etc.';
  70 +create schema waren; -- alles zu Warengruppen und Produkten
  71 +COMMENT ON SCHEMA waren IS 'alles zu Warengruppen und Produkten';
  72 +grant USAGE ON SCHEMA waren TO GROUP guest;
  73 +create schema benutzer; -- alles zur Benutzerverwltung
  74 +COMMENT ON SCHEMA benutzer IS 'alles zur Benutzerverwltung';
  75 +-- ]
  76 +-- ende Schemas --
  77 +
  78 +-- meine Aktionshistory
  79 +-- [
  80 +CREATE TABLE history (
  81 + "username" text NOT NULL, -- der User der die Aktion ausgeloest hat.
  82 + "time" timestamp NOT NULL, -- wann wurde die Aktion ausgeloest.
  83 + "tab" text NOT NULL, -- der betroffene Table.
  84 + "row_oid" int4 NOT NULL, -- die OID der betroffenen Zeile.
  85 + "at_time" text NOT NULL, -- BEFORE, AFTER.
  86 + "operation" text NOT NULL, -- INSERT, UPDATE, DELETE.
  87 + "col_names" text[] NOT NULL, -- zur uebersicht die column-namen
  88 + "col_types" text[] NOT NULL, -- zur uebersicht die column-typen
  89 + "col_vals" text[] NOT NULL); -- aktuelle Feldwerte
  90 +
  91 +set search_path to trigger_func;
  92 +
  93 +\i trigger_funcs/cr_trigger_func_generic.sql
  94 +
  95 +set search_path to public;
  96 +-- ]
  97 +-- ende History
  98 +
  99 +-- Table zu Länder --
  100 +-- [
  101 +set search_path to adresse;
  102 +
  103 +create table land (
  104 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  105 + "land" text NOT NULL, -- Name(Bezeichnung) des Landes
  106 + "lnd_kz" varchar(3) NOT NULL, -- intern. Post-Kennzeichen
  107 + "vorwahl_l" varchar(4) NOT NULL); -- intern. Laendervorwahl
  108 +
  109 +COMMENT ON TABLE land IS 'Tabelle zu Laender';
  110 +
  111 +COMMENT ON COLUMN land._id_ IS 'interne id';
  112 +COMMENT ON COLUMN land.land IS 'Name (Bezeichnung) des Landes';
  113 +COMMENT ON COLUMN land.lnd_kz IS 'internationales Post-Kennzeichen';
  114 +COMMENT ON COLUMN land.vorwahl_l IS 'internationale Telefonvorwahl des Landes';
  115 +
  116 +create unique index "land_ukey1" on land (land);
  117 +create unique index "land_ukey2" on land (lnd_kz);
  118 +create unique index "land_ukey3" on land (vorwahl_l);
  119 +
  120 +\i plpgsql_funcs/cr_func_land.sql
  121 +
  122 +select public.start_logging('land', 'ALL');
  123 +-- ]
  124 +-- Ende Länder --
  125 +
  126 +-- Table zu Orte --
  127 +-- [
  128 +create table "ort" (
  129 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  130 + "ort" text NOT NULL, -- Name (Bezeichnung) des Orts
  131 + "vorwahl_o" varchar(10) NOT NULL, -- Ortsvorwahl
  132 + "id_land" int4 NOT NULL, -- Land, in dem der Ort liegt
  133 + CONSTRAINT fk_ort1 FOREIGN KEY (id_land) REFERENCES land (_id_)
  134 + ON DELETE CASCADE
  135 + ON UPDATE CASCADE);
  136 +
  137 +COMMENT ON TABLE ort IS 'Tabelle zu Orten';
  138 +
  139 +COMMENT ON COLUMN ort._id_ IS 'interne id';
  140 +COMMENT ON COLUMN ort.ort IS 'Name (Bezeichnung) des Ortes';
  141 +COMMENT ON COLUMN ort.vorwahl_o IS 'Ortsvorwahl';
  142 +COMMENT ON COLUMN ort.id_land IS 'FOREIGN KEY: Land in dem der Ort liegt';
  143 +
  144 +COMMENT ON CONSTRAINT fk_ort1 ON ort IS '
  145 +wird ein Land geloescht so muessen auch alle dazu gehörenden Orte
  146 +geloescht werden da moeglicherweise Orte mit gleichen Namen und
  147 +gleicher Vorwahl zu verschiedenen Laendern gehoeren und dadurch
  148 +Inkonsistenzen entstehen koennen.';
  149 +
  150 +create unique index "ort_ukey1" on ort (vorwahl_o,id_land);
  151 +
  152 +\i plpgsql_funcs/cr_func_ort.sql
  153 +
  154 +select public.start_logging('ort', 'ALL');
  155 +-- ]
  156 +-- ende Orte --
  157 +
  158 +-- Table zu Adressen --
  159 +-- [
  160 +create table "adresse" (
  161 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  162 + "strasse" text NOT NULL, -- Strassenname
  163 + "h_nr" varchar(5) NOT NULL, -- Hausnummer
  164 + "plz_a" varchar(10) NOT NULL, -- Postleitzahl
  165 + "id_ort" int4 NULL, -- Ort
  166 + "id_land" int4 NOT NULL, -- Land
  167 + CONSTRAINT fk_adresse1 FOREIGN KEY (id_ort) REFERENCES ort (_id_)
  168 + ON DELETE SET NULL
  169 + ON UPDATE CASCADE,
  170 + CONSTRAINT fk_adresse2 FOREIGN KEY (id_land) REFERENCES land (_id_)
  171 + ON DELETE CASCADE
  172 + ON UPDATE CASCADE);
  173 +
  174 +COMMENT ON TABLE adresse IS 'Tabelle zu Adressen:
  175 +------------------
  176 +id_land habe ich mit aufgenommen, da es sein kann das ich den Ort zu
  177 +einer Adresse nicht kenne, aber weiß in welchem Land sie liegt, dann
  178 +kann ich nicht über den Ort das Land ermitteln, was man nach einer
  179 +ersten Ueberlegung fuer den logischeren Weg halten koennte.
  180 +Das Land zu einer Adresse muss bekannt sein, damit das passenden
  181 +Laenderkennzeichen zur Postleitzahl ergaenzt werden kann.';
  182 +
  183 +COMMENT ON COLUMN adresse._id_ IS 'interne id';
  184 +COMMENT ON COLUMN adresse.strasse IS 'Strassenname';
  185 +COMMENT ON COLUMN adresse.h_nr IS 'Hausnummer';
  186 +COMMENT ON COLUMN adresse.plz_a IS 'Postleitzahl';
  187 +COMMENT ON COLUMN adresse.id_ort IS 'FOREIGN KEY: Ort';
  188 +COMMENT ON COLUMN adresse.id_land IS 'FOREIGN KEY: Land';
  189 +
  190 +COMMENT ON CONSTRAINT fk_adresse1 ON adresse IS '
  191 +auch wenn ich den Ort zu einer Adresse nicht kennen so reicht doch
  192 +in der Regel auch die Postleitzahl, daher behalte ich erstmal alle
  193 +Adressen wenn der dazugehoerige Ort geloescht wird, setze aber
  194 +ort_id auf NULL. Dann kann allerdings die ort_id nicht zum
  195 +Schluessel dieser Tabelle gehoeren. Stattdessen nehme ich die plz.';
  196 +COMMENT ON CONSTRAINT fk_adresse2 ON adresse IS '
  197 +wird ein Land geloescht, so muß ich um inkonsistenzen zu vermeiden
  198 +auch alle dazu gespeicherten Adressen entfernen, da sonst genau wie
  199 +bei den Orten zwei gleiche Adressen in der DB stehen koennten.';
  200 +
  201 +create unique index "adresse_ukey1" on adresse (strasse,h_nr,plz_a,id_land);
  202 +
  203 +\i plpgsql_funcs/cr_func_adresse.sql
  204 +
  205 +select public.start_logging('adresse', 'ALL');
  206 +
  207 +set search_path to public;
  208 +-- ]
  209 +-- ende Adressen --
  210 +
  211 +-- Tabellen für Personendaten
  212 +-- [
  213 +set search_path to person;
  214 +
  215 +create table "person" (
  216 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  217 + "anrede" varchar(10) NULL, -- Herr, Frau, Firma
  218 + "titel" text NULL, -- Dr., Prof., Dipl. Ing...
  219 + "nachname" text NOT NULL, -- Nachname
  220 + "vorname" text NOT NULL, -- Vorname
  221 + "geb_dat" date NOT NULL, -- Geburtsdatum
  222 + "postfach" varchar(10) NULL, -- Postfach
  223 + "telefon" varchar(10) NULL, -- Telefon persönlich
  224 + "fax" varchar(10) NULL, -- Fax persoenlich
  225 + "handy" varchar(50) NULL, -- Handy persoenlich
  226 + "email" varchar(50) NULL, -- E-Mail persoenlich
  227 + "webpage" varchar(100) NULL); -- Webseite persoenlich
  228 +
  229 +COMMENT ON TABLE person IS 'Tabelle für Personendaten';
  230 +
  231 +COMMENT ON COLUMN person._id_ IS 'interne id';
  232 +COMMENT ON COLUMN person.anrede IS 'Herr, Frau, Firma';
  233 +COMMENT ON COLUMN person.titel IS 'Dr., Prof., Dipl. Ing...';
  234 +COMMENT ON COLUMN person.nachname IS 'Nachname';
  235 +COMMENT ON COLUMN person.vorname IS 'Vorname';
  236 +COMMENT ON COLUMN person.geb_dat IS 'Geburtsdatum';
  237 +COMMENT ON COLUMN person.postfach IS 'Postfach';
  238 +COMMENT ON COLUMN person.telefon IS 'Telefon persönlich';
  239 +COMMENT ON COLUMN person.fax IS 'Fax persoenlich';
  240 +COMMENT ON COLUMN person.handy IS 'Handy persoenlich';
  241 +COMMENT ON COLUMN person.email IS 'E-Mail persoenlich';
  242 +COMMENT ON COLUMN person.webpage IS 'Webseite persoenlich';
  243 +
  244 +create unique index "person_ukey1" on person (nachname, vorname, geb_dat);
  245 +
  246 +select public.start_logging('person', 'ALL');
  247 +
  248 +-- wohnt --
  249 +create table "wohnt" (
  250 + id_person int4 NOT NULL, -- Person
  251 + id_adresse int4 NOT NULL, -- Adresse
  252 + PRIMARY KEY (id_person, id_adresse),
  253 + FOREIGN KEY (id_person) REFERENCES person (_id_)
  254 + -- hier wird immer die ganze zuordnung geloescht, das ist ok, da
  255 + -- dadurch keinerlei weitere Daten verlohren gehen koennen.
  256 + ON DELETE CASCADE
  257 + ON UPDATE CASCADE,
  258 + FOREIGN KEY (id_adresse) REFERENCES adresse.adresse (_id_)
  259 + -- hier wird immer die ganze zuordnung geloescht, das ist ok, da
  260 + -- dadurch keinerlei weitere Daten verlohren gehen koennen.
  261 + ON DELETE CASCADE
  262 + ON UPDATE CASCADE);
  263 +
  264 +COMMENT ON TABLE wohnt IS 'Adresse zu Person';
  265 +
  266 +COMMENT ON COLUMN wohnt.id_person IS 'Person';
  267 +COMMENT ON COLUMN wohnt.id_adresse IS 'Adresse';
  268 +
  269 +\i plpgsql_funcs/cr_func_person.sql
  270 +
  271 +select public.start_logging('wohnt', 'ALL');
  272 +
  273 +set search_path to public;
  274 +-- ]
  275 +-- ende Personendaten
  276 +
  277 +-- Arbeitsplatz --
  278 +-- [
  279 +set search_path to firma;
  280 +
  281 +create table "firma" (
  282 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  283 + "name" text NOT NULL, -- Name (Bezeichnung) der Firma
  284 + "beschreibung" text NULL, -- Was fuer eine Firma ist das
  285 + "plz_f" varchar(10) NULL); -- Postleitzahl (große Firme)
  286 +
  287 +COMMENT ON TABLE firma IS 'Firmengrundinformation:
  288 +-------------------------------
  289 +meine Konzeption sieht vor das jede Firma mindestens eine Abteilung hat,
  290 +die alle Mitarbeiter umfasst wenn es keine weiteren Abteilungen gibt, gibt
  291 +es weitere Abteilungen koennen alle, einige oder keine Mitarbeiter zu dieser
  292 +Abteilung erfasst sein. Diese Abteilung heisst Firma.
  293 +Die Adresse zu dieser Abteilung ist immer die Adresse des Hauptsitzes der
  294 +Firma.';
  295 +
  296 +COMMENT ON COLUMN firma._id_ IS 'interne id';
  297 +COMMENT ON COLUMN firma.name IS 'Name (Bezeichnung) der Firma';
  298 +COMMENT ON COLUMN firma.beschreibung IS 'Was fuer eine Firma ist das';
  299 +COMMENT ON COLUMN firma.plz_f IS 'Postleitzahl (große Firme)';
  300 +
  301 +create unique index "firma_ukey1" on firma (name,plz_f);
  302 +
  303 +select public.start_logging('firma', 'ALL');
  304 +
  305 +create table "abteilung" (
  306 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  307 + "bezeichnung" text NOT NULL, -- Name (Bezeichnung) der Abt.
  308 + "beschreibung" text NULL, -- was macht diese Abteilung
  309 + "telefon" varchar(10) NULL, -- Telefon (Zentrale)
  310 + "fax" varchar(10) NULL, -- Fax Abteilung
  311 + "email" varchar(50) NULL, -- E-Mail (gemeins. fuer Abtl.)
  312 + "postfach" varchar(10) NULL, -- Postfach
  313 + "id_firma" int4 NOT NULL, -- zu welcher Firma gehört sie
  314 + "id_adresse" int4 NULL, -- wo liegt sie.
  315 + CONSTRAINT fk_abteilung1
  316 + FOREIGN KEY (id_adresse) REFERENCES adresse.adresse (_id_)
  317 + ON DELETE SET NULL
  318 + ON UPDATE CASCADE,
  319 + CONSTRAINT fk_abteilung2 FOREIGN KEY (id_firma) REFERENCES firma (_id_)
  320 + ON DELETE CASCADE
  321 + ON UPDATE CASCADE);
  322 +
  323 +COMMENT ON TABLE abteilung IS 'Abteilungen zu Firmen
  324 +(siehe auch Kommentar zu table firma)
  325 +-------------------------------------
  326 +Bislang wird die Abteilung beim anlegen einer Firma in der function
  327 +ins_firma mit angelegt, besser waehre jedoch ein Trigger der bei jedem
  328 +insert in firma eine passende abteilung anlegt.';
  329 +
  330 +COMMENT ON COLUMN abteilung._id_ IS 'interne id';
  331 +COMMENT ON COLUMN abteilung.bezeichnung IS 'Name (Bezeichnung) der Abt.';
  332 +COMMENT ON COLUMN abteilung.beschreibung IS 'was macht diese Abteilung';
  333 +COMMENT ON COLUMN abteilung.telefon IS 'Telefon (Zentrale)';
  334 +COMMENT ON COLUMN abteilung.fax IS 'Fax Abteilung';
  335 +COMMENT ON COLUMN abteilung.email IS 'E-Mail (gemeins. fuer Abtl.)';
  336 +COMMENT ON COLUMN abteilung.postfach IS 'Postfach';
  337 +COMMENT ON COLUMN abteilung.id_firma IS
  338 + 'FOREIGN KEY: zu welcher Firma gehört sie';
  339 +COMMENT ON COLUMN abteilung.id_adresse IS 'FOREIGN KEY: wo liegt sie';
  340 +
  341 +COMMENT ON CONSTRAINT fk_abteilung1 ON abteilung IS '
  342 +wird eine Adresse geloescht, so moechte ich unter umständen trotzdem
  343 +gerne alle weiteren Firmendaten halten. Daher setze ich in diesem
  344 +Fall id_adresse auf NULL.';
  345 +COMMENT ON CONSTRAINT fk_abteilung2 ON abteilung IS '
  346 +wird eine Firma gelöscht, so werden auch alle zu ihr gehoerenden
  347 +Abteilungen geloescht.';
  348 +
  349 +create unique index "abteilung_ukey1" on abteilung (bezeichnung, id_firma);
  350 +
  351 +select public.start_logging('abteilung', 'ALL');
  352 +
  353 +create table "arbeit" (
  354 + "id_person" int4 NOT NULL, -- Person die arbeitet
  355 + "id_abteilung" int4 NOT NULL, -- Abteilung in der sie arbeitet
  356 + "position" text NOT NULL, -- Position innerhalb der Abt. o. Firma
  357 + "beschreibung" text NULL, -- Beschreibung der Taetigkeit
  358 + "telefon" varchar(10) NULL, -- Telefon beruflich
  359 + "fax" varchar(10) NULL, -- Fax beruflich
  360 + "email" varchar(50) NULL, -- E-Mail beruflich
  361 + "gehalt" numeric(10,2) NULL, -- Gehalt
  362 + PRIMARY KEY (id_person, id_abteilung),
  363 + CONSTRAINT fk_arbeit1
  364 + FOREIGN KEY (id_person) REFERENCES person.person (_id_)
  365 + ON DELETE CASCADE
  366 + ON UPDATE CASCADE,
  367 + CONSTRAINT fk_arbeit2 FOREIGN KEY (id_abteilung) REFERENCES abteilung (_id_)
  368 + ON DELETE CASCADE
  369 + ON UPDATE CASCADE);
  370 +
  371 +COMMENT ON TABLE arbeit IS 'Person arbeitet in Abteilung';
  372 +
  373 +COMMENT ON COLUMN arbeit.id_person IS 'FOREIGN KEY: Person die arbeitet';
  374 +COMMENT ON COLUMN arbeit.id_abteilung IS
  375 + 'FOREIGN KEY: Abteilung in der sie arbeitet';
  376 +COMMENT ON COLUMN arbeit.position IS 'Position innerhalb der Abt. o. Firma';
  377 +COMMENT ON COLUMN arbeit.beschreibung IS 'Beschreibung der Taetigkeit';
  378 +COMMENT ON COLUMN arbeit.telefon IS 'Telefon beruflich';
  379 +COMMENT ON COLUMN arbeit.fax IS 'Fax beruflich';
  380 +COMMENT ON COLUMN arbeit.email IS 'E-Mail beruflich';
  381 +COMMENT ON COLUMN arbeit.gehalt IS 'Gehalt';
  382 +
  383 +COMMENT ON CONSTRAINT fk_arbeit1 ON arbeit IS '
  384 +da es sich hier nur um eine Relation mit Zusatzinformationen
  385 +handelt ist ein loeschen ok, denn wenn die Person geloescht wird
  386 +sind auch die Zusatzinfos uninteressant.';
  387 +COMMENT ON CONSTRAINT fk_arbeit2 ON arbeit IS '
  388 +da es sich hier nur um eine Relation mit Zusatzinformationen
  389 +handelt ist ein loeschen ok, denn wenn die Abteilung geloescht wird
  390 +sind auch die Zusatzinfos uninteressant. Die Person ist dann
  391 +quasi arbeitslos in meiner DB.';
  392 +
  393 +\i plpgsql_funcs/cr_func_arbeit.sql
  394 +
  395 +select public.start_logging('arbeit', 'ALL');
  396 +
  397 +set search_path to public;
  398 +-- ]
  399 +-- ende Arbeitsplatz --
  400 +
  401 +-- Konto --
  402 +-- [
  403 +set search_path to fibu;
  404 +
  405 +create table "konten_typen" (
  406 + "mask" bit varying NOT NULL PRIMARY KEY, -- interne id
  407 + "name" text NOT NULL, -- Bezeichnung des Kontentyps (AKTIVA)
  408 + "beschreibung" text NULL); -- eine Beschreibung wofuer der Typ ist
  409 +
  410 +COMMENT ON TABLE konten_typen IS 'z.B. AKTIVA,AUWAND,EIGENKAPITAL etc.';
  411 +
  412 +COMMENT ON COLUMN konten_typen.mask IS 'interne id';
  413 +COMMENT ON COLUMN konten_typen.name IS 'Bezeichnung des Kontentyps (AKTIVA)';
  414 +COMMENT ON COLUMN konten_typen.beschreibung IS
  415 + 'eine Beschreibung wofuer der Typ ist';
  416 +
  417 +create unique index "konten_typen_ukey1" on konten_typen (name);
  418 +
  419 +select public.start_logging('konten_typen', 'ALL');
  420 +
  421 +create table "used_konten" (
  422 + "kto_nr" int4 NOT NULL PRIMARY KEY, -- interne id
  423 + "used" int4 NOT NULL, -- von wievielen genutzt
  424 + "konto_typ" bit varying NOT NULL, -- kontentyp
  425 + CONSTRAINT fk_used_konten1
  426 + FOREIGN KEY (konto_typ) REFERENCES konten_typen (mask)
  427 + ON DELETE CASCADE
  428 + ON UPDATE CASCADE);
  429 +
  430 +COMMENT ON TABLE used_konten IS '
  431 +Tabelle enthaelt alle zur verfuegung stehenden Kontonummern mit einem
  432 +Flag das anzeigt wie oft auf das Konto referenziert wird.';
  433 +
  434 +COMMENT ON COLUMN used_konten.kto_nr IS 'interne id';
  435 +COMMENT ON COLUMN used_konten.used IS 'von wievielen genutzt';
  436 +COMMENT ON COLUMN used_konten.konto_typ IS 'FOREIGN KEY: kontentyp';
  437 +
  438 +-- hier schenk ich mir das beim insert zugunsten einer besseren
  439 +-- laufzeit....spaeter bau cih moeglichkeiten ein, das logging seperat
  440 +-- fuer jedem table an und abzustellen und zwar separat fuer INSERT,UPDATE
  441 +-- und DELETE...
  442 +select public.start_logging('used_konten', 'UDPATE');
  443 +select public.start_logging('used_konten', 'DELETE');
  444 +
  445 +create table "kontenplan" (
  446 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  447 + "konto_typ" bit varying NOT NULL, -- Bestands-, Erfolgs- etc
  448 + "name" text NOT NULL, -- Bezeichnung des Kontenbereichs
  449 + "nr_von" int4 NOT NULL, -- Startwert der Kontonummern
  450 + "nr_bis" int4 NOT NULL, -- Wert von letzter gueltiger Nummer
  451 + CONSTRAINT fk_kontenplan1
  452 + FOREIGN KEY (konto_typ) REFERENCES konten_typen (mask)
  453 + ON DELETE CASCADE
  454 + ON UPDATE CASCADE);
  455 +
  456 +COMMENT ON TABLE kontenplan IS 'Kontonummernbereiche zu Kontotypen:
  457 +------------------------------------
  458 +Hier gibt es ein wenig zu beachten damit die Tabelle konsistent bleibt
  459 +a) zu jedem Kontentyp darf nur ein Eintrag existieren.
  460 + (Das scheint mir schwachsinnig zu sein.....konto_typ,name muss unique
  461 + sein.)
  462 +b) Die Nummernbereiche duerfen sich nicht ueberschneiden
  463 +c) Zu jedem neuen Eintrag in kontenplan muessen entsprechende Eintraege
  464 + in used_konten gemacht werden. Und schliesslich
  465 +d) wird ein Eintrag in kontenplan erfolgreich geaender (d.h. es gibt
  466 + (keine Ueberschneidungen mit anderen Eintraegen, dann muessen die
  467 + entsprechenden Eintraege in used Konten angepasst werde, der Status darf
  468 + sich dort nicht aendern, wenn im neuen Bereich weniger Nummern existieren
  469 + muessen ueberzaehlige Eintraege entfernt werden (ACHTUNG: hierbei kann
  470 + es dann dazu kommen das auch Eintraege in Tabellen die Kontonummern
  471 + als Fremdschluessel enthalten geloescht werden.) oder wenn der neue
  472 + Bereich mehr Kontonummern enthaelt weitere Eintraege in used_konten
  473 + eingefuegt werden.
  474 +e) wird ein Eintrag geloescht so muessen auch alle dazu gehoerenden Eintraege
  475 + in used_konten geloescht werden (ACHTUNG: hierbei kann es dazu kommen,
  476 + dass auch Eintraege in Tabellen die Kontonummern als Fremdschluessel
  477 + enthalten geloescht werden. Dies betrifft insbesondete Debitoren,
  478 + Kreditoren und Warengruppen.)';
  479 +
  480 +COMMENT ON COLUMN kontenplan._id_ IS 'interne id';
  481 +COMMENT ON COLUMN kontenplan.konto_typ IS
  482 + 'FOREIGN KEY: Bestands-, Erfolgs- etc';
  483 +COMMENT ON COLUMN kontenplan.name IS 'Bezeichnung des Kontenbereichs';
  484 +COMMENT ON COLUMN kontenplan.nr_von IS 'Startwert der Kontonummern';
  485 +COMMENT ON COLUMN kontenplan.nr_bis IS 'Wert von letzter gueltiger Nummer';
  486 +
  487 +-- zu kontenplan a)
  488 +create unique index "kontenplan_ukey1" on kontenplan (konto_typ, name);
  489 +
  490 +COMMENT ON INDEX kontenplan_ukey1 IS 'siehe COMMENT zu TABLE koentenplan a)';
  491 +
  492 +select public.start_logging('kontenplan', 'ALL');
  493 +
  494 +create table "konto" (
  495 + "kto_nr" int4 NOT NULL PRIMARY KEY, -- Kontonummer, intern
  496 + "name" text NULL, -- Kontobezeichnung (Kasse etc.)
  497 + "konto_typ" bit varying NOT NULL, -- Typ (AKTIVA, DEBITOR...)
  498 + "saldo_soll" numeric(10,2) DEFAULT 0.0 NOT NULL, -- Saldo im soll
  499 + "saldo_haben" numeric(10,2) DEFAULT 0.0 NOT NULL, -- Saldo im haben
  500 + "summe" numeric(10,2) DEFAULT 0.0 NOT NULL, -- Gesamtsumme des Kontos
  501 + "blz" varchar(8) NULL, -- Bankleitzahl (falls vorhanden)
  502 + "b_kto_nr" text NULL, -- Bank-Kontonummer (falls vorhanden)
  503 + "b_name" text NULL, -- Name der Bank
  504 + CONSTRAINT fk_konto1
  505 + FOREIGN KEY (konto_typ) REFERENCES konten_typen (mask)
  506 + ON DELETE CASCADE
  507 + ON UPDATE CASCADE);
  508 +
  509 +COMMENT ON TABLE konto IS 'Repraesentation eines Kontos fuer die Buchfuehrung';
  510 +
  511 +COMMENT ON COLUMN konto.kto_nr IS 'Kontonummer, intern';
  512 +COMMENT ON COLUMN konto.name IS 'Kontobezeichnung (Kasse etc.)';
  513 +COMMENT ON COLUMN konto.konto_typ IS 'FOREIGN KEY: Typ (AKTIVA, DEBITOR...)';
  514 +COMMENT ON COLUMN konto.saldo_soll IS 'Saldo im soll';
  515 +COMMENT ON COLUMN konto.saldo_haben IS 'Saldo im haben';
  516 +COMMENT ON COLUMN konto.summe IS 'Gesamtsumme des Kontos';
  517 +COMMENT ON COLUMN konto.blz IS 'Bankleitzahl (falls vorhanden)';
  518 +COMMENT ON COLUMN konto.b_kto_nr IS 'Bank-Kontonummer (falls vorhanden)';
  519 +COMMENT ON COLUMN konto.b_name IS 'Name der Bank';
  520 +
  521 +select public.start_logging('konto', 'ALL');
  522 +
  523 +create table "buchung" (
  524 + "kto_soll" int4 NOT NULL, -- Buchung von Konto
  525 + "kto_haben" int4 NOT NULL, -- nach Konto
  526 + "be_nr" varchar(10) NOT NULL, -- Belegnummer
  527 + "bu_date" date NOT NULL, -- Buchungsdatum
  528 + "buchungstext" text NULL, -- Zusatzinformationen
  529 + "betrag" numeric(10,2) NOT NULL, -- Betrag der Buchung
  530 + PRIMARY KEY (be_nr, bu_date),
  531 + CONSTRAINT fk_buchung1 FOREIGN KEY (kto_soll) REFERENCES konto (kto_nr)
  532 + ON UPDATE CASCADE
  533 + ON DELETE CASCADE,
  534 + CONSTRAINT fk_buchung2 FOREIGN KEY (kto_haben) REFERENCES konto (kto_nr)
  535 + ON UPDATE CASCADE
  536 + ON DELETE CASCADE);
  537 +
  538 +COMMENT ON TABLE buchung IS 'alle Buchungsaetze zwischen Konten:
  539 +------------------------------------
  540 +mehrteilige Buchungen werden als mehrere Buchungen zur gleichen Belegnummer
  541 +und dem gleichen Datum erfasst. Es soll auch moeglich sein einen Beleg an
  542 +mehreren Tagen zu Buchen. Daher die wahl des Primaerschluessels als
  543 +kombination von kto_soll, kto_haben, be_nr, bu_date.';
  544 +
  545 +COMMENT ON COLUMN buchung.kto_soll IS 'FOREIGN KEY: Buchung von Konto';
  546 +COMMENT ON COLUMN buchung.kto_haben IS 'FOREIGN KEY: nach Konto';
  547 +COMMENT ON COLUMN buchung.be_nr IS 'Belegnummer';
  548 +COMMENT ON COLUMN buchung.bu_date IS 'Buchungsdatum';
  549 +COMMENT ON COLUMN buchung.buchungstext IS 'Zusatzinformationen';
  550 +COMMENT ON COLUMN buchung.betrag IS 'Betrag der Buchung';
  551 +
  552 +-- alle Funktionen zu Konten
  553 +\i plpgsql_funcs/cr_func_konto.sql
  554 +
  555 +select public.start_logging('buchung', 'ALL');
  556 +
  557 +-- Rules um die Bitmasken einheitlich zu halten.
  558 +-- Dafuer hatte ich vorher einen Trigger, aber ich denke das ist sinnvoller
  559 +-- in Rules zu implementiern.
  560 +-- Das kann ich leider nicht machen, fuer inserts funktioniert das noch,
  561 +-- aber leider muessten updates-rules nach den rewrite entweder eine andere
  562 +-- action oder eine andere Zielrelation haben, beides kann ich nicht machne,
  563 +-- da ich nur den Wert veraendern will.
  564 +-- Daher bleibt mir nichts anderes uebrig als trigger zu nehmen.
  565 +
  566 +set search_path to trigger_func;
  567 +
  568 +\i trigger_funcs/cr_trigger_func_konto.sql
  569 +
  570 +-- Trigger
  571 +-- Dieser Trigger hat bevor ich obige Rules hatte die Bitmasken in ordnung
  572 +-- gehalten, jetzt wird er nicht mehr gebraucht!
  573 +create trigger valid_mask_trigger_before
  574 + BEFORE INSERT OR UPDATE ON fibu.konten_typen FOR EACH ROW
  575 + EXECUTE PROCEDURE create_valid_mask_before('fibu.konten_typen');
  576 +create trigger valid_mask_trigger_after
  577 + AFTER INSERT OR UPDATE ON fibu.konten_typen FOR EACH ROW
  578 + EXECUTE PROCEDURE create_valid_mask_after('fibu.konten_typen');
  579 +COMMENT ON TRIGGER valid_mask_trigger_before ON fibu.konten_typen IS
  580 +'wird ein neuer Kontentyp eingefuegt oder aber ein Kontentyp geaendert '
  581 +'so muss sicher gestellt sein, das alle Typen die gleiche laenge haben, '
  582 +'da sich sonst keine logischen Operationen mit ihnen ausfuehren lassen.';
  583 +COMMENT ON TRIGGER valid_mask_trigger_after ON fibu.konten_typen IS
  584 +'wird ein neuer Kontentyp eingefuegt oder aber ein Kontentyp geaendert '
  585 +'so muss sicher gestellt sein, das alle Typen die gleiche laenge haben, '
  586 +'da sich sonst keine logischen Operationen mit ihnen ausfuehren lassen.';
  587 +
  588 +create trigger fibu_trigger1_on_ref_count_null_del_konto
  589 + AFTER UPDATE ON fibu.used_konten FOR EACH ROW
  590 + EXECUTE PROCEDURE on_ref_count_null_del_konto();
  591 +COMMENT ON TRIGGER fibu_trigger1_on_ref_count_null_del_konto
  592 + ON fibu.used_konten IS
  593 +'Wenn niemand mehr auf das konto referenziert kann der entsprechende
  594 +Eintrag in der Tabelle konto geloescht werden.';
  595 +
  596 +-- zu kontenplan b)
  597 +create trigger fibu_trigger1_on_change_check_ranges
  598 + BEFORE INSERT OR UPDATE ON fibu.kontenplan FOR EACH ROW
  599 + EXECUTE PROCEDURE on_change_kontenplan_check_ranges();
  600 +COMMENT ON TRIGGER fibu_trigger1_on_change_check_ranges
  601 + ON fibu.kontenplan IS 'siehe COMMENT zu TABLE koentenplan b)';
  602 +
  603 +-- zu kontenplan c)
  604 +create trigger fibu_trigger2_on_insert_create_used_konten
  605 + AFTER INSERT ON fibu.kontenplan FOR EACH ROW
  606 + EXECUTE PROCEDURE on_insert_kontenplan_create_used_konten();
  607 +COMMENT ON TRIGGER fibu_trigger2_on_insert_create_used_konten
  608 + ON fibu.kontenplan IS 'siehe COMMENT zu TABLE koentenplan c)';
  609 +
  610 +-- zu kontenplan d)
  611 +create trigger fibu_trigger3_on_update_update_used_konten
  612 + AFTER UPDATE ON fibu.kontenplan FOR EACH ROW
  613 + EXECUTE PROCEDURE on_update_kontenplan_upd_used_konten();
  614 +COMMENT ON TRIGGER fibu_trigger3_on_update_update_used_konten
  615 + ON fibu.kontenplan IS 'siehe COMMENT zu TABLE koentenplan c)';
  616 +
  617 +-- zu kontenplan e)
  618 +create trigger fibu_trigger4_on_delete_del_used_konten
  619 + AFTER DELETE ON fibu.kontenplan FOR EACH ROW
  620 + EXECUTE PROCEDURE on_delete_kontenplan_del_used_konten();
  621 +COMMENT ON TRIGGER fibu_trigger4_on_delete_del_used_konten
  622 + ON fibu.kontenplan IS 'siehe COMMENT zu TABLE koentenplan e)';
  623 +-- Trigger ende
  624 +
  625 +set search_path to fibu;
  626 +
  627 +insert into konten_typen (mask, name) values (B'1','BESTAND');
  628 +insert into konten_typen (mask, name) values (konto_typ('BESTAND',2)|
  629 + B'10', 'AKTIVA');
  630 +insert into konten_typen (mask, name) values (konto_typ('AKTIVA',3)|
  631 + B'100', 'ANLAGE');
  632 +insert into konten_typen (mask, name) values (konto_typ('AKTIVA',4)|
  633 + B'1000', 'UMLAUF');
  634 +insert into konten_typen (mask, name) values (konto_typ('UMLAUF',5)|
  635 + B'10000','DEBITOR');
  636 +insert into konten_typen (mask, name) values (konto_typ('BESTAND',6)|
  637 + B'100000','PASSIVA');
  638 +insert into konten_typen (mask, name) values (konto_typ('PASSIVA',7)|
  639 + B'1000000','EIGEN');
  640 +insert into konten_typen (mask, name) values (konto_typ('PASSIVA',8)|
  641 + B'10000000','FREMD');
  642 +insert into konten_typen (mask, name) values (konto_typ('FREMD',9)|
  643 + B'100000000','KREDITOR');
  644 +insert into konten_typen (mask, name) values (B'1000000000','ERFOLG');
  645 +insert into konten_typen (mask, name) values (konto_typ('ERFOLG',11)|
  646 + B'10000000000','ERTRAG');
  647 +insert into konten_typen (mask, name) values (konto_typ('ERFOLG',12)|
  648 + B'100000000000','AUFWAND');
  649 +
  650 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  651 + (konto_typ('ANLAGE',konto_typ_min_len()), 'Anlagevermögen', 100, 109);
  652 +
  653 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  654 + (konto_typ('UMLAUF',konto_typ_min_len()),
  655 + 'Umlaufvermögen ohne Forderungen LL', 110, 119);
  656 +
  657 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  658 + (konto_typ('DEBITOR',konto_typ_min_len()), 'Forderungen LL', 1000, 1999);
  659 +
  660 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  661 + (konto_typ('EIGEN',konto_typ_min_len()), 'Eigenkapital', 200, 209);
  662 +
  663 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  664 + (konto_typ('FREMD',konto_typ_min_len()),
  665 + 'Fremdkapital ohne Verbindlichkeiten LL', 210, 219);
  666 +
  667 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  668 + (konto_typ('KREDITOR',konto_typ_min_len()),
  669 + 'Verbindlichkeiten LL', 2000, 2999);
  670 +
  671 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  672 + (konto_typ('ERTRAG',konto_typ_min_len()), 'Erträge', 3000, 3999);
  673 +
  674 +insert into kontenplan (konto_typ, name, nr_von, nr_bis) values
  675 + (konto_typ('AUFWAND',konto_typ_min_len()), 'Aufwendungen', 4000, 4999);
  676 +
  677 +select inc_konto_ref_count(
  678 + ins_konto(NULL, 'Hardware', konto_typ('ANLAGE',konto_typ_min_len()),
  679 + NULL, NULL, NULL));
  680 +select inc_konto_ref_count(
  681 + ins_konto(NULL, 'Software', konto_typ('ANLAGE',konto_typ_min_len()),
  682 + NULL, NULL, NULL));
  683 +select inc_konto_ref_count(
  684 + ins_konto(NULL, 'Kasse', konto_typ('UMLAUF',konto_typ_min_len()),
  685 + NULL, NULL, NULL));
  686 +select inc_konto_ref_count(
  687 + ins_konto(NULL, 'Bankkonto', konto_typ('UMLAUF',konto_typ_min_len()),
  688 + '20110022', '3 003 938 178', 'Postbank (Spar) Hamburg'));
  689 +select inc_konto_ref_count(
  690 + ins_konto(NULL, 'Forderungen sonstige',
  691 + konto_typ('UMLAUF',konto_typ_min_len()),
  692 + NULL, NULL, NULL));
  693 +select inc_konto_ref_count(
  694 + ins_konto(NULL, 'Eigenkapital', konto_typ('EIGEN',konto_typ_min_len()),
  695 + NULL, NULL, NULL));
  696 +select inc_konto_ref_count(
  697 + ins_konto(NULL, 'Privatkonto', konto_typ('EIGEN',konto_typ_min_len()),
  698 + NULL, NULL, NULL));
  699 +select inc_konto_ref_count(
  700 + ins_konto(NULL, 'Kredite', konto_typ('FREMD',konto_typ_min_len()),
  701 + NULL, NULL, NULL));
  702 +select inc_konto_ref_count(
  703 + ins_konto(NULL, 'Verbindlichkeiten wiedekehrend',
  704 + konto_typ('FREMD',konto_typ_min_len()),
  705 + NULL, NULL, NULL));
  706 +select inc_konto_ref_count(
  707 + ins_konto(NULL, 'Verbindlichkeiten sonstige',
  708 + konto_typ('FREMD',konto_typ_min_len()),
  709 + NULL, NULL, NULL));
  710 +
  711 +set search_path to public;
  712 +-- ]
  713 +-- ende Konto --
  714 +
  715 +-- Benutzerdaten
  716 +-- [
  717 +set search_path to benutzer;
  718 +
  719 +create table benutzer (
  720 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  721 + "user_name" text NOT NULL, -- Shop- und DB-Benutzername
  722 + -- Passwort brauchen wir nicht, wir werden ueber die DB authentifiziert.
  723 + --"password" text NOT NULL, -- Shop- und DB-Passwort
  724 + "id_person" int4 NULL, -- falls Person, sonst NULL
  725 + "id_firma" int4 NULL, -- falls Firma, sonst NULL
  726 + "u_typ" bit(3) NOT NULL DEFAULT B'001',-- 001-Kunde, 010-Anbieter, 100-Admin
  727 + CONSTRAINT fk_benutzer1
  728 + FOREIGN KEY (id_person) REFERENCES person.person (_id_)
  729 + ON DELETE CASCADE
  730 + ON UPDATE CASCADE,
  731 + CONSTRAINT fk_benutzer2
  732 + FOREIGN KEY (id_firma) REFERENCES firma.firma (_id_)
  733 + ON DELETE CASCADE
  734 + ON UPDATE CASCADE);
  735 +
  736 +COMMENT ON TABLE benutzer IS '<U>username, passwort usw.:</U><BR>'
  737 + 'bei id_kunde, id_admin, id_lieferant gilt dasselbe wie schon bei'
  738 + 'den Kunden oder den Anbietern in etwas abgewandelter form. <BR>'
  739 + 'Hier muss mindestens eines der Attribute NOT NULL sei, aber es duerfen '
  740 + 'auch alle not NULL sein.<BR>'
  741 + 'Zur Erinnerung, bei Kunden durfte immer nur entweder id_person oder '
  742 + 'id_firma einen Wert haben, das jeweils andere Attribut musste NULL sein.';
  743 +
  744 +COMMENT ON COLUMN benutzer._id_ IS 'interne id';
  745 +COMMENT ON COLUMN benutzer.user_name IS 'Shop- und DB-Benutzername';
  746 +--COMMENT ON COLUMN benutzer.password IS 'Shop- und DB-Passwort';
  747 +COMMENT ON COLUMN benutzer.id_person IS 'FOREIGN KEY: falls Person, sonst NULL';
  748 +COMMENT ON COLUMN benutzer.id_firma IS 'FOREIGN KEY: falls Firma, sonst NULL';
  749 +COMMENT ON COLUMN benutzer.u_typ IS '001-Kunde, 010-Anbieter, 100-Admin';
  750 +
  751 +select public.start_logging('benutzer', 'ALL');
  752 +
  753 +set search_path to trigger_func,benutzer;
  754 +\i trigger_funcs/cr_trigger_func_benutzer.sql
  755 +
  756 +CREATE trigger benutzer_trigger1_on_change_one_null
  757 + BEFORE INSERT OR UPDATE ON benutzer.benutzer FOR EACH ROW
  758 + EXECUTE PROCEDURE on_change_one_null();
  759 +COMMENT ON TRIGGER benutzer_trigger1_on_change_one_null ON
  760 + benutzer.benutzer IS 'stellt sicher das immer nur entweder eine Firma '
  761 + 'oder eine Person der Benutzer ist.';
  762 +
  763 +-- OK, man koennte fragen warum eine Firma ein Benutzer sein sollte, aber
  764 +-- so kann ich zwischen Privat und fuer Firmen genutzten Benutzeraccounts
  765 +-- unterscheiden.
  766 +
  767 +set search_path to benutzer;
  768 +
  769 +create table rechte (
  770 + "mask" bit varying NOT NULL PRIMARY KEY, -- rechte-Maske
  771 + "name" text NOT NULL, -- Rechte-Name
  772 + "beschreibung" text NULL); -- Beschreibung
  773 +
  774 +COMMENT ON TABLE rechte IS
  775 + 'Alle Rechte die ein Admin haben kann mit den entsprechenden Masken\n'
  776 + 'Hier werden nur grundlegende Rechtegebiete gespeichert. Diese sind\n'
  777 + 'zur Zeit:<BR>\n'
  778 + '<UL>\n'
  779 + '<LI><B>benutzer</B> = 1 <I>Zugang zur Benutzerverwaltung</I></LI>\n'
  780 + '<LI><B>person</B> = 10 <I>Zugang zur Personendaten</I></LI>\n'
  781 + '<LI><B>firma</B> = 100 <I>Zugang zur Firmendaten</I></LI>\n'
  782 + '<LI><B>fibu</B> = 1000 <I>Zugang zur Shop-Fibu</I></LI>\n'
  783 + '<LI><B>warengruppe</B> = 10000 <I>Zugang zu WGs aller Anbieter</I></LI>\n'
  784 + '<LI><B>produkte</B> = 100000 <I>Zugang zu Prod aller Anbieter</I></LI>\n'
  785 + '<LI><B>rechte</B> = 1000000 <I>Zugang zu Rechtesystem</I></LI>\n'
  786 + '</UL>\n'
  787 + '<BR>Um zu sehen welche Rechte ein admin in einem bestimmten Bereich hat\n'
  788 + 'gibt es die Tabelle effektive_rechte. (siehe Beschreibung dort)<BR>\n'
  789 + 'Gehoeren mehrere Tabellen zu den Gebiete, so hat der Admin die gesetzten\n'
  790 + 'Rechte an allen Tabellen dieses Gebites.<BR>\n'
  791 + 'Die im Moment eingetragenen Rechte betreffen hauptsaechlich\n'
  792 + 'Datenbankzugriffe, man koennte sich vorstellen weiter Rechte wie z.B.\n'
  793 + 'Newsletteradmin einzutragen. Bei diesen wuerde dann entweder gar kein\n'
  794 + 'Eintrag in effektive Rechte noetig sein, oder aber nur das feld spicial\n'
  795 + 'ist wichtig.';
  796 +
  797 +COMMENT ON COLUMN rechte.mask IS 'rechte-Maske';
  798 +COMMENT ON COLUMN rechte.name IS 'Rechte-Name';
  799 +COMMENT ON COLUMN rechte.beschreibung IS 'Beschreibung';
  800 +
  801 +select public.start_logging('rechte', 'ALL');
  802 +
  803 +set search_path to trigger_func,benutzer;
  804 +\i trigger_funcs/cr_trigger_func_rechte.sql
  805 +
  806 +-- Hier muss genau wie bei den Kontentypen darauf geachtet werden das die
  807 +-- Bitmasken immer eine einheitlich laenge haben.
  808 +create trigger valid_mask_trigger_before
  809 + BEFORE INSERT OR UPDATE ON benutzer.rechte FOR EACH ROW
  810 + EXECUTE PROCEDURE create_valid_mask_before('benutzer.rechte');
  811 +create trigger valid_mask_trigger_after
  812 + AFTER INSERT OR UPDATE ON benutzer.rechte FOR EACH ROW
  813 + EXECUTE PROCEDURE create_valid_mask_after('benutzer.rechte');
  814 +
  815 +set search_path to benutzer;
  816 +
  817 +insert into rechte (mask, name, beschreibung) values
  818 + (B'1', 'user', 'Zugang zur Benutzerverwaltung');
  819 +insert into rechte (mask, name, beschreibung) values
  820 + (B'10', 'person', 'Zugang zur Personendaten');
  821 +insert into rechte (mask, name, beschreibung) values
  822 + (B'100', 'firma' , 'Zugang zur Firmendaten');
  823 +insert into rechte (mask, name, beschreibung) values
  824 + (B'1000', 'fibu' , 'Zugang zur Shop-Fibu');
  825 +insert into rechte (mask, name, beschreibung) values
  826 + (B'10000', 'warengruppe', 'Zugang zu WGs aller Anbieter');
  827 +insert into rechte (mask, name, beschreibung) values
  828 + (B'100000', 'produkt', 'Zugang zu Prod aller Anbieter');
  829 +insert into rechte (mask, name, beschreibung) values
  830 + (B'1000000', 'rules', 'Zugang zu Rechtesystem');
  831 +
  832 +--CREATE trigger rechte_trigger2_on_chg_or_del_clean_effektive_rechte
  833 +-- BEFORE UPDATE OR DELETE ON benutzer.rechte FOR EACH ROW
  834 +-- EXECUTE PROCEDURE clean_effektive_rechte();
  835 +
  836 +-- Stattdessen bietet sich eine rule an, da ich nicht viel Logic brauche
  837 +-- sondern einfach nur nen update auf effektive rechte mache. Etwa so...
  838 +-- erstmal ne Rule um die Breite der mask konsistent zu halten....
  839 +--CREATE RULE clean_effektive_rechte_1 AS
  840 +-- ON UPDATE OR DELETE TO rechte
  841 +-- DO ( UPDATE effektive_rechte SET
  842 +
  843 +create table admin (
  844 + "id_benutzer" int4 NOT NULL PRIMARY KEY, -- Benutzer des Admin
  845 + "rechte" bit varying DEFAULT B'0' NOT NULL, -- kombination von RechteMasken
  846 + CONSTRAINT fk_admin1
  847 + FOREIGN KEY (id_benutzer) REFERENCES benutzer (_id_)
  848 + ON DELETE CASCADE
  849 + ON UPDATE CASCADE);
  850 +
  851 +COMMENT ON TABLE admin IS
  852 +'<U>Hier werden alle Benutzer die Admins sind mit den passenden Attributen '
  853 +' gespeichert:</U><BR><BR>'
  854 +'zwar ist rechte kein FOREIGN KEY auf rechte, aber trotzdem muss'
  855 +'ueber einen Trigger sichergestellt werden das wenn Rechte geloescht'
  856 +'oder geandert werden die Masken hier angepasst werden.'
  857 +'Beim loeschen ist das recht einfach, man loescht einfach bei allen'
  858 +'Admins das entsprechende bit in ihrer Maske, schwere ist das wenn'
  859 +'ein Recht in rechte geaendert wird, dann habe ich quasi keine chance'
  860 +'noch zu checke ob Admins die das entsprechende Bit gesetzt haben immer'
  861 +'noch die passenden rechte haben. Die Loesung hier ist ueber einen'
  862 +'Trigger alle UPDATES auf Rechte abzuschmettern.';
  863 +
  864 +COMMENT ON COLUMN admin.rechte IS 'kombination von RechteMasken';
  865 +COMMENT ON COLUMN admin.id_benutzer IS 'FOREIGN KEY: Benutzerdaten des Admin';
  866 +
  867 +select public.start_logging('admin', 'ALL');
  868 +
  869 +create table effektive_rechte (
  870 + id_admin int4 NOT NULL, -- Id des Admin zu dem die Rechte gehoeren.
  871 + mask bit varying NOT NULL, -- Maske ueber die Rechte fuer die diese
  872 + -- Enstellung gelten soll, diese darf sich
  873 + -- nicht mit anderen recht_masken zu einer
  874 + -- id_admin ueberschneiden, (Trigger).
  875 + -- ausserdem muss zu allen Bits dieser Maske
  876 + -- auch ein Eintrag in rechte vorhanden sein,
  877 + -- (ein weitere Trigger, oder sogar mehrere,
  878 + -- einer beim update, einfuegen hier und einer
  879 + -- beim update, loeschen in rechte)
  880 + r_add boolean NOT NULL DEFAULT 'f', -- eintraege hinzufuegen
  881 + r_delete boolean NOT NULL DEFAULT 'f', -- eintraege loeschen
  882 + r_update boolean NOT NULL DEFAULT 'f', -- eintraege aktualisieren
  883 + special bit varying NULL, -- spezielle Rechte
  884 + PRIMARY KEY (id_admin, mask),
  885 + CONSTRAINT fk_effektive_rechte
  886 + FOREIGN KEY (id_admin) REFERENCES admin (id_benutzer)
  887 + ON DELETE CASCADE
  888 + ON UPDATE CASCADE);
  889 +
  890 +COMMENT ON TABLE effektive_rechte IS
  891 + 'Diese Tablle dient dazu genau zu beschreiben was ein admin in einem\n'
  892 + 'der Gebiete (aus rechte) fuer die er Eingetragen ist fuer Rechte hat.\n'
  893 + 'insbesondere, ob er adden, deleten und/oder updaten darf.<BR>\n'
  894 + 'Die hier eingetragene recht_maske kann mehrere Rechte umfassen (im\n'
  895 + 'folgenden Text Rechtegruppe genannt), dann gelten die Einstellungen\n'
  896 + 'fuer alle Rechte dieser Rechtegruppe. Wird die Einstellung fuer ein\n'
  897 + 'Recht oder eine Rechtegruppe nachtraeglich geaendert, so wird zuerst\n'
  898 + 'nachgesehen ob bereits Eintraege zu diesen Rechten vorhanden sind.\n'
  899 + 'Diese werden aus den Rechtegruppen in denen sie waren ausgekoppelt und\n'
  900 + 'als Einzeleintraege neu eingetragen. Dabei werden dann auch gleich die\n'
  901 + 'zu aendernden Attribute neu gesetzt.<BR>\n'
  902 + 'Das Feld special dient zum speichern etwaiger besonderer Rechte, z.B.\n'
  903 + 'Wenn eine Tabelle des Gebiets nur von bestimmten Admins geandert werden\n'
  904 + 'darf kann hier nochmal ein Bit gesetzt werden das eine solche\n'
  905 + 'Unterscheidung moeglich macht.';
  906 +
  907 +COMMENT ON COLUMN effektive_rechte.id_admin IS
  908 + 'Id des Admin zu dem die Rechte gehoeren.';
  909 +COMMENT ON COLUMN effektive_rechte.mask IS
  910 + 'Maske ueber die Rechte fuer die diese Enstellung gelten soll, diese\n'
  911 + 'darf sich nicht mit anderen recht_masken zu einer id_admin\n'
  912 + 'ueberschneiden, (Trigger).<BR>\n'
  913 + 'ausserdem muss zu allen Bits dieser Maske auch ein Eintrag in rechte\n'
  914 + 'vorhanden sein, (ein weitere Trigger, oder sogar mehrere, einer beim\n'
  915 + 'update, einfuegen hier und einer beim update, loeschen in rechte)';
  916 +COMMENT ON COLUMN effektive_rechte.r_add IS 'eintraege hinzufuegen';
  917 +COMMENT ON COLUMN effektive_rechte.r_delete IS 'eintraege loeschen';
  918 +COMMENT ON COLUMN effektive_rechte.r_update IS 'eintraege aktualisieren';
  919 +COMMENT ON COLUMN effektive_rechte.special IS 'spezielle Rechte';
  920 +
  921 +select public.start_logging('effektive_rechte', 'ALL');
  922 +
  923 +-- hier fehlt noch fast alles...is nur schon mal da das ichs nich vergesse :-)
  924 +-- is die frage ob ich das ueberhaupt brauch wenn ich das session management
  925 +-- von JSP/struts oder PHP nutze....sprich das SessionManagement programmatisch
  926 +-- umsetze...
  927 +create table session (
  928 + sess_id text NOT NULL PRIMARY KEY);
  929 +
  930 +COMMENT ON TABLE session IS
  931 + 'Hier werden alle Information zu Sitzungen am Shop gespeichert...'
  932 + 'es fehlt aber quasi noch alles!';
  933 +
  934 +create table "kunde" (
  935 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  936 + "kd_nr" text NOT NULL, -- Kundennummer
  937 + "konto1" int4 NOT NULL, -- Debitor-Konto (Rechnung)
  938 + "konto2" int4 NOT NULL, -- Kreditor-Konto (Vorkasse)
  939 + "id_benutzer" int4 NOT NULL, -- Benutzerdaten des Kunden
  940 + CONSTRAINT fk_kunde1
  941 + FOREIGN KEY (konto1) REFERENCES fibu.used_konten (kto_nr)
  942 + ON DELETE CASCADE
  943 + ON UPDATE CASCADE,
  944 + CONSTRAINT fk_kunde2
  945 + FOREIGN KEY (konto2) REFERENCES fibu.used_konten (kto_nr)
  946 + ON DELETE CASCADE
  947 + ON UPDATE CASCADE,
  948 + CONSTRAINT fk_kunde3
  949 + FOREIGN KEY (id_benutzer) REFERENCES benutzer.benutzer (_id_)
  950 + ON DELETE CASCADE
  951 + ON UPDATE CASCADE);
  952 +
  953 +COMMENT ON TABLE kunde IS 'Kundeninformationen:
  954 +----------------------------
  955 +Hier gibt es wieder was zu beachten und zu automatisieren.
  956 +a) beim einfuegen eines kunden muss,
  957 + a.a) wenn kontonummern mit angegeben werden, geprueft werden ob diese
  958 + wirklich den richtigen Typ haben, ob sie ueberhaupt schon in Konto
  959 + engetragen sind, wenn nicht muß dies passieren vorausgesetzt der Typ
  960 + stimmt, und in used_konten muss used auf true gesetzt werden, dies
  961 + kann ruhig auch gemacht werden wenn die Konten bereits genutzt
  962 + wurden.
  963 + a.b) wenn keine kontonummern mit angegeben werden muessen automatisch
  964 + passende Konten angelegt werden und die Nummern eingesetzt werden.
  965 + Auch hier muss natuerlich used_konten angepasst werden.
  966 +b) beim aendern eines kunden muss,
  967 + b.a) wenn kontonummern mit angegeben werden, muessen diese wie beim
  968 + einfuegen kontrolliert werden bevor sie eingefuegt werden.
  969 + ausserdem muß der ref_count bei den alten konten runter und bei
  970 + den neuen rauf gesetzt werden. (Das laeuft darauf hinaus das ich
  971 + einmal ins_konto mache, das gibt mir die Kontonummer zurueck wenn
  972 + das Konto schon existierte oder wenn es angelegt wurde und ich
  973 + mich dann um die ref_counts kuemmere.)
  974 + b.b) wenn keine kontonummern mit angegeben werden, die alten beibehalten,
  975 + also in der Triggerfunc wieder auf die neuen uebertragen werden.
  976 +c) beim loeschen eines kunden, sofern keine anderer Kunde oder Anbieter
  977 + mehr das Konto nutzt kann es geloescht werden und used in used_konten
  978 + wieder auf false gesetzt werden. (OK, hier kommt gleich eine Schwaeche
  979 + des aktuellen System zum vorschein, naemlich das man nicht leicht
  980 + feststellen kann ob das Konto noch genutzt wird....abhilfe schaffe ich
  981 + indem ich used in used_konten von boolean auf int4 umstelle und definiere
  982 + 0 ist ungenutzt und sobald einer das konto nutzt wird used um 1
  983 + hochgezaehlt, nutzt einer es nicht mehr wird used um 1 runtergezaehlt.
  984 + (ist gemacht, Kommentar loeschen sobald es getestet ist!)';
  985 +
  986 +COMMENT ON COLUMN kunde._id_ IS 'interne id';
  987 +COMMENT ON COLUMN kunde.kd_nr IS 'Kundennummer';
  988 +COMMENT ON COLUMN kunde.konto1 IS 'FOREIGN KEY: Debitor-Konto (Rechnung)';
  989 +COMMENT ON COLUMN kunde.konto2 IS 'FOREIGN KEY: Kreditor-Konto (Vorkasse)';
  990 +COMMENT ON COLUMN kunde.id_benutzer IS 'FOREIGN KEY: Benutzerdaten';
  991 +
  992 +COMMENT ON CONSTRAINT fk_kunde1 ON kunde IS
  993 +'wird ein Konto aus used_konten geloescht oder dessen _id_ veraendert,
  994 +so soll eine entsprechende anpassung hier stattfinden, das gilt auch
  995 +fuer alle weiteren Tabellen die Konten nutzen.
  996 +ob es sinnvoll ist einen Kunden zu loeschen wenn ein entsprechnder
  997 +Eintrag in used_konten geloescht wird muss nochmal ueberdacht werden.';
  998 +COMMENT ON CONSTRAINT fk_kunde2 ON kunde IS
  999 +'wird ein Konto aus used_konten geloescht oder dessen _id_ veraendert,
  1000 +so soll eine entsprechende anpassung hier stattfinden, das gilt auch
  1001 +fuer alle weiteren Tabellen die Konten nutzen.
  1002 +ob es sinnvoll ist einen Kunden zu loeschen wenn ein entsprechnder
  1003 +Eintrag in used_konten geloescht wird muss nochmal ueberdacht werden.';
  1004 +
  1005 +create unique index "kunde_ukey" on kunde (kd_nr);
  1006 +
  1007 +\i plpgsql_funcs/cr_func_kunde.sql
  1008 +
  1009 +select public.start_logging('kunde', 'ALL');
  1010 +
  1011 +set search_path to trigger_func,benutzer;
  1012 +
  1013 +-- Trigger
  1014 +CREATE trigger kunde_trigger2_on_insert_create_konten
  1015 + BEFORE INSERT ON benutzer.kunde FOR EACH ROW
  1016 + EXECUTE PROCEDURE on_insert_create_konten('DEBITOR','KREDITOR');
  1017 +COMMENT ON TRIGGER kunde_trigger2_on_insert_create_konten
  1018 + ON benutzer.kunde IS 'siehe COMMENT zu TABLE kunde a)';
  1019 +
  1020 +CREATE trigger kunde_trigger3_on_update_update_konten
  1021 + BEFORE UPDATE ON benutzer.kunde FOR EACH ROW
  1022 + EXECUTE PROCEDURE on_update_update_konten('DEBITOR','KREDITOR');
  1023 +COMMENT ON TRIGGER kunde_trigger3_on_update_update_konten
  1024 + ON benutzer.kunde IS 'siehe COMMENT zu TABLE kunde b)';
  1025 +
  1026 +CREATE trigger kunde_trigger4_on_delete_dec_konto_ref_count
  1027 + AFTER DELETE ON benutzer.kunde FOR EACH ROW
  1028 + EXECUTE PROCEDURE on_delete_dec_konto_ref_count();
  1029 +COMMENT ON TRIGGER kunde_trigger4_on_delete_dec_konto_ref_count
  1030 + ON benutzer.kunde IS 'siehe COMMENT zu TABLE kunde c)';
  1031 +-- Ende Trigger
  1032 +
  1033 +set search_path to benutzer;
  1034 +
  1035 +create table "anbieter" (
  1036 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  1037 + "an_nr" text NOT NULL, -- Anbieternummer
  1038 + "konto1" int4 NOT NULL, -- Debitor-Konto (Vorkasse)
  1039 + "konto2" int4 NOT NULL, -- Kreditor-Konto (Rechnung)
  1040 + "id_benutzer" int4 NOT NULL, -- Benutzerdaten oder NULL
  1041 + CONSTRAINT fk_anbieter1
  1042 + FOREIGN KEY (konto1) REFERENCES fibu.used_konten (kto_nr)
  1043 + ON DELETE CASCADE
  1044 + ON UPDATE CASCADE,
  1045 + CONSTRAINT fk_anbieter2
  1046 + FOREIGN KEY (konto2) REFERENCES fibu.used_konten (kto_nr)
  1047 + ON DELETE CASCADE
  1048 + ON UPDATE CASCADE,
  1049 + CONSTRAINT fk_anbieter3
  1050 + FOREIGN KEY (id_benutzer) REFERENCES benutzer.benutzer (_id_)
  1051 + ON DELETE CASCADE
  1052 + ON UPDATE CASCADE);
  1053 +
  1054 +COMMENT ON TABLE anbieter IS
  1055 +'Leute die Waren in meinem Shop anbieten:<BR>';
  1056 +
  1057 +COMMENT ON COLUMN anbieter._id_ IS 'interne id';
  1058 +COMMENT ON COLUMN anbieter.an_nr IS 'Anbieternummer';
  1059 +COMMENT ON COLUMN anbieter.konto1 IS 'FOREIGN KEY: Debitor-Konto (Vorkasse)';
  1060 +COMMENT ON COLUMN anbieter.konto2 IS 'FOREIGN KEY: Kreditor-Konto (Rechnung)';
  1061 +COMMENT ON COLUMN anbieter.id_benutzer IS 'FOREIGN KEY: Benutzerdaten:';
  1062 +
  1063 +COMMENT ON CONSTRAINT fk_anbieter1 ON anbieter IS
  1064 + 'siehe COMMENT zu CONSTRAINT fk_kunde1';
  1065 +COMMENT ON CONSTRAINT fk_anbieter2 ON anbieter IS
  1066 + 'siehe COMMENT zu CONSTRAINT fk_kunde2';
  1067 +
  1068 +create unique index "anbieter_ukey" on anbieter (an_nr);
  1069 +
  1070 +select public.start_logging('anbieter', 'ALL');
  1071 +
  1072 +set search_path to trigger_func,benutzer;
  1073 +
  1074 +-- Trigger
  1075 +CREATE trigger anbieter_trigger2_on_insert_create_konten
  1076 + BEFORE INSERT ON benutzer.anbieter FOR EACH ROW
  1077 + EXECUTE PROCEDURE on_insert_create_konten('DEBITOR','KREDITOR');
  1078 +COMMENT ON TRIGGER anbieter_trigger2_on_insert_create_konten
  1079 + ON benutzer.anbieter IS 'siehe COMMENT zu TABLE kunde a)';
  1080 +
  1081 +CREATE trigger anbieter_trigger3_on_update_update_konten
  1082 + BEFORE UPDATE ON benutzer.anbieter FOR EACH ROW
  1083 + EXECUTE PROCEDURE on_update_update_konten('DEBITOR','KREDITOR');
  1084 +COMMENT ON TRIGGER anbieter_trigger2_on_insert_create_konten
  1085 + ON benutzer.anbieter IS 'siehe COMMENT zu TABLE kunde b)';
  1086 +
  1087 +CREATE trigger anbieter_trigger4_on_delete_dec_konto_ref_count
  1088 + AFTER DELETE ON benutzer.anbieter FOR EACH ROW
  1089 + EXECUTE PROCEDURE on_delete_dec_konto_ref_count();
  1090 +COMMENT ON TRIGGER anbieter_trigger2_on_insert_create_konten
  1091 + ON benutzer.anbieter IS 'siehe COMMENT zu TABLE kunde c)';
  1092 +-- Ende Trigger
  1093 +
  1094 +set search_path to public;
  1095 +-- ]
  1096 +-- ende Benutzerdaten
  1097 +
  1098 +-- Verkaueferdaten, Leute bei denen ich einkaufe, gehoert zu fibu.
  1099 +-- [
  1100 +set search_path to fibu;
  1101 +
  1102 +create table "verkaeufer" (
  1103 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  1104 + "vk_nr" text NOT NULL, -- Anbieternummer
  1105 + "konto1" int4 NOT NULL, -- Debitor-Konto (Vorkasse)
  1106 + "konto2" int4 NOT NULL, -- Kreditor-Konto (Rechnung)
  1107 + "id_person" int4 NULL, -- falls Person, sonst NULL
  1108 + "id_firma" int4 NULL, -- falls Firma, sonst NULL
  1109 + CONSTRAINT fk_verkaeufer1
  1110 + FOREIGN KEY (konto1) REFERENCES fibu.used_konten (kto_nr)
  1111 + ON DELETE CASCADE
  1112 + ON UPDATE CASCADE,
  1113 + CONSTRAINT fk_verkaeufer2
  1114 + FOREIGN KEY (konto2) REFERENCES fibu.used_konten (kto_nr)
  1115 + ON DELETE CASCADE
  1116 + ON UPDATE CASCADE,
  1117 + CONSTRAINT fk_verkaeufer3
  1118 + FOREIGN KEY (id_person) REFERENCES person.person (_id_)
  1119 + ON DELETE CASCADE
  1120 + ON UPDATE CASCADE,
  1121 + CONSTRAINT fk_verkaeufer4
  1122 + FOREIGN KEY (id_firma) REFERENCES firma.firma (_id_)
  1123 + ON DELETE CASCADE
  1124 + ON UPDATE CASCADE);
  1125 +
  1126 +COMMENT ON TABLE verkaeufer IS 'Leute oder Firmen bei denen ich einkaufe.';
  1127 +
  1128 +COMMENT ON COLUMN verkaeufer._id_ IS 'interne id';
  1129 +COMMENT ON COLUMN verkaeufer.vk_nr IS 'Verkaeufernummer';
  1130 +COMMENT ON COLUMN verkaeufer.konto1 IS 'FOREIGN KEY: Debitor-Konto (Vorkasse)';
  1131 +COMMENT ON COLUMN verkaeufer.konto2 IS 'FOREIGN KEY: Kreditor-Konto (Rechnung)';
  1132 +COMMENT ON COLUMN verkaeufer.id_person IS
  1133 + 'FOREIGN KEY: falls Person, sonst NULL';
  1134 +COMMENT ON COLUMN verkaeufer.id_firma IS 'FOREIGN KEY: falls Firma, sonst NULL';
  1135 +
  1136 +COMMENT ON CONSTRAINT fk_verkaeufer1 ON verkaeufer IS
  1137 + 'siehe COMMENT zu CONSTRAINT fk_kunde1';
  1138 +COMMENT ON CONSTRAINT fk_verkaeufer1 ON verkaeufer IS
  1139 + 'siehe COMMENT zu CONSTRAINT fk_kunde2';
  1140 +
  1141 +create unique index "verkaufer_ukey" on verkaeufer (vk_nr);
  1142 +
  1143 +select public.start_logging('verkaeufer', 'ALL');
  1144 +
  1145 +set search_path to trigger_func,fibu;
  1146 +
  1147 +-- Trigger
  1148 +CREATE trigger verkaeufer_trigger1_on_change_one_null
  1149 + BEFORE INSERT OR UPDATE ON fibu.verkaeufer FOR EACH ROW
  1150 + EXECUTE PROCEDURE on_change_one_null();
  1151 +COMMENT ON TRIGGER verkaeufer_trigger1_on_change_one_null ON
  1152 + fibu.verkaeufer IS 'stellt sicher das immer nur entweder eine Firma '
  1153 + 'oder eine Person der Varkaeufer ist.';
  1154 +
  1155 +CREATE trigger verkaeufer_trigger2_on_insert_create_konten
  1156 + BEFORE INSERT ON fibu.verkaeufer FOR EACH ROW
  1157 + EXECUTE PROCEDURE on_insert_create_konten('DEBITOR','KREDITOR');
  1158 +COMMENT ON TRIGGER verkaeufer_trigger2_on_insert_create_konten
  1159 + ON fibu.verkaeufer IS 'siehe COMMENT zu TABLE kunde a)';
  1160 +
  1161 +CREATE trigger verkaeufer_trigger3_on_update_update_konten
  1162 + BEFORE UPDATE ON fibu.verkaeufer FOR EACH ROW
  1163 + EXECUTE PROCEDURE on_update_update_konten('DEBITOR','KREDITOR');
  1164 +COMMENT ON TRIGGER verkaeufer_trigger2_on_insert_create_konten
  1165 + ON fibu.verkaeufer IS 'siehe COMMENT zu TABLE kunde b)';
  1166 +
  1167 +CREATE trigger verkaeufer_trigger4_on_delete_dec_konto_ref_count
  1168 + AFTER DELETE ON fibu.verkaeufer FOR EACH ROW
  1169 + EXECUTE PROCEDURE on_delete_dec_konto_ref_count();
  1170 +COMMENT ON TRIGGER verkaeufer_trigger2_on_insert_create_konten
  1171 + ON fibu.verkaeufer IS 'siehe COMMENT zu TABLE kunde c)';
  1172 +-- Ende Trigger
  1173 +
  1174 +set search_path to public;
  1175 +-- ]
  1176 +-- ende Benutzerdaten
  1177 +-- Table zu Waren, Warengruppen u. Lager --
  1178 +-- [
  1179 +set search_path to waren;
  1180 +
  1181 +create table warengruppe (
  1182 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  1183 + "name" text NOT NULL, -- Bezeichnung der Warengruppe
  1184 + "steuerkl" int4 NOT NULL, -- Steuern zu dieser Produktgruppe
  1185 + "kurzbeschreibung" text NULL, -- Kurzbeschreibung
  1186 + "beschreibung" text NULL, -- Beschreibung
  1187 + "produkt_typen" bit varying NOT NULL, -- Maske der anzuzeigenden Produkte.
  1188 + "pic_path" text NULL, -- optionaler Pfad zu einem Bild
  1189 + "tiefe" int4 DEFAULT 0 NOT NULL, -- die wievielte Untergruppe
  1190 + "parent" int4 NULL, -- uebergeordnete Warengruppe
  1191 + "is_parent" boolean DEFAULT false NOT NULL, -- ist WG ein Parent??
  1192 + "konto1" int4 NOT NULL, -- Wareneingangskonto
  1193 + "konto2" int4 NOT NULL, -- Warenausgangskonto
  1194 + -- produkt_typen ist kein FOREIGN KEY, da es sich hierbei um eine
  1195 + -- Kombination von mehreren Typen aus der Tabelle produkt_typen handeln
  1196 + -- kann.
  1197 + CONSTRAINT fk_warengruppe1
  1198 + FOREIGN KEY (konto1) REFERENCES fibu.konto (kto_nr)
  1199 + ON DELETE CASCADE
  1200 + ON UPDATE CASCADE,
  1201 + CONSTRAINT fk_warengruppe2
  1202 + FOREIGN KEY (konto2) REFERENCES fibu.konto (kto_nr)
  1203 + ON DELETE CASCADE
  1204 + ON UPDATE CASCADE,
  1205 + CONSTRAINT fk_warengruppe3
  1206 + FOREIGN KEY (parent) REFERENCES warengruppe (_id_)
  1207 + ON UPDATE CASCADE);
  1208 +
  1209 +COMMENT ON TABLE warengruppe IS
  1210 + '<U>Warengruppen unter denen Produkte oder weitere Warengruppen '
  1211 + 'organisiert werden:</U><BR><BR>'
  1212 + 'Enthaelt eine Warengruppe weitere Warengruppen, so sind die zu den '
  1213 + 'Untergruppen gehoerenden Eingangs und Ausgangskonten auch Unterkonten '
  1214 + 'zu den in der Obergruppe existierenden Konten, d.h. der Saldo der '
  1215 + 'Unterkonten muss immer auf das Oberkonto uebertragen werden. '
  1216 + 'Ich glaube dafuer sollte ich trigger bauen....<BR>'
  1217 + 'Die Konten sind natuerlich wie bei kunden automatisch anzulegen.';
  1218 +
  1219 +COMMENT ON COLUMN warengruppe._id_ IS 'interne id';
  1220 +COMMENT ON COLUMN warengruppe.name IS 'Bezeichnung der Warengruppe';
  1221 +COMMENT ON COLUMN warengruppe.steuerkl IS 'Steuern zu dieser Produktgruppe';
  1222 +COMMENT ON COLUMN warengruppe.kurzbeschreibung IS 'Kurzbeschreibung';
  1223 +COMMENT ON COLUMN warengruppe.beschreibung IS 'Beschreibung';
  1224 +COMMENT ON COLUMN warengruppe.produkt_typen IS
  1225 + 'Maske der anzuzeigenden Produkte.';
  1226 +COMMENT ON COLUMN warengruppe.pic_path IS 'optionaler Pfad zu einem Bild';
  1227 +COMMENT ON COLUMN warengruppe.tiefe IS 'die wievielte Untergruppe';
  1228 +COMMENT ON COLUMN warengruppe.parent IS 'uebergeordnete Warengruppe';
  1229 +COMMENT ON COLUMN warengruppe.is_parent IS 'ist WG ein Parent??';
  1230 +COMMENT ON COLUMN warengruppe.konto1 IS 'Wareneingangskonto';
  1231 +COMMENT ON COLUMN warengruppe.konto2 IS 'Warenausgangskonto';
  1232 +
  1233 +create unique index "warengruppe_ukey1" on warengruppe(name);
  1234 +
  1235 +\i plpgsql_funcs/cr_func_waren.sql
  1236 +
  1237 +select public.start_logging('warengruppe', 'ALL');
  1238 +
  1239 +set search_path to trigger_func,waren;
  1240 +\i trigger_funcs/cr_trigger_func_waren.sql
  1241 +
  1242 +-- Trigger
  1243 +create trigger waren_trigger1_on_insert_create_konten
  1244 + BEFORE INSERT ON waren.warengruppe FOR EACH ROW
  1245 + EXECUTE PROCEDURE on_insert_create_konten('AUFWAND','ERTRAG');
  1246 +COMMENT ON TRIGGER waren_trigger1_on_insert_create_konten
  1247 + ON waren.warengruppe IS 'siehe COMMENT zu TABLE kunde c)';
  1248 +
  1249 +CREATE trigger waren_trigger2_on_update_update_konten
  1250 + BEFORE UPDATE ON waren.warengruppe FOR EACH ROW
  1251 + EXECUTE PROCEDURE on_update_update_konten('AUFWAND','ERTRAG');
  1252 +COMMENT ON TRIGGER waren_trigger2_on_update_update_konten
  1253 + ON waren.warengruppe IS 'siehe COMMENT zu TABLE kunde c)';
  1254 +
  1255 +CREATE trigger waren_trigger3_on_delete_dec_konto_ref_count
  1256 + AFTER DELETE ON waren.warengruppe FOR EACH ROW
  1257 + EXECUTE PROCEDURE on_delete_dec_konto_ref_count();
  1258 +COMMENT ON TRIGGER waren_trigger3_on_delete_dec_konto_ref_count
  1259 + ON waren.warengruppe IS 'siehe COMMENT zu TABLE kunde c)';
  1260 +
  1261 +
  1262 +create trigger waren_trigger4_on_insert_set_tiefe
  1263 + BEFORE INSERT ON waren.warengruppe FOR EACH ROW
  1264 + EXECUTE PROCEDURE set_tiefe();
  1265 +COMMENT ON TRIGGER waren_trigger4_on_insert_set_tiefe
  1266 + ON waren.warengruppe IS 'setze tiefe auf parent.tiefe+1 oder 0 '
  1267 + 'wenn es eine Rootgruppe ist';
  1268 +
  1269 +create trigger waren_trigger5_on_update_check_tiefe
  1270 + BEFORE UPDATE ON waren.warengruppe FOR EACH ROW
  1271 + EXECUTE PROCEDURE on_update_check_tiefe();
  1272 +COMMENT ON TRIGGER waren_trigger5_on_update_check_tiefe
  1273 + ON waren.warengruppe IS 'wenn sich parent aendert setze tiefe=neuer '
  1274 + 'parent.tiefe+1 oder 0 wenn der neue parent '
  1275 + 'NULL ist (Rootgruppe)';
  1276 +
  1277 +create trigger waren_trigger6_on_delete_new_parent
  1278 + BEFORE DELETE ON waren.warengruppe FOR EACH ROW
  1279 + EXECUTE PROCEDURE on_delete_new_parent();
  1280 +COMMENT ON TRIGGER waren_trigger6_on_delete_new_parent
  1281 + ON waren.warengruppe IS 'wenn eine Warengruppe geloescht wird muss parent '
  1282 + 'bei allen untergeordneten Gruppen auf parent der '
  1283 + 'geloeschten Obergruppe gesetzt werden.';
  1284 +
  1285 +create trigger waren_trigger7_on_update_delete_check_is_parent
  1286 + AFTER UPDATE OR DELETE ON waren.warengruppe FOR EACH ROW
  1287 + EXECUTE PROCEDURE on_update_delete_check_is_parent();
  1288 +COMMENT ON TRIGGER waren_trigger7_on_update_delete_check_is_parent
  1289 + ON waren.warengruppe IS 'nach update oder delete muss gecheckt werden ob '
  1290 + 'is_parent noch bei allen Eintraegen stimmt.';
  1291 +-- Ende Trigger
  1292 +
  1293 +set search_path to waren;
  1294 +
  1295 +create table produkt_typen (
  1296 + "produkt_typ" bit varying NOT NULL PRIMARY KEY, -- interne id
  1297 + "bezeichnung" text NOT NULL, -- Bezeichnung, z.B. Kleidung, Uhren
  1298 + "typ_table" text NULL); -- Tabellenname fuer Typinfos
  1299 +
  1300 +COMMENT ON TABLE produkt_typen IS
  1301 + '<U>Enthaelt Bitmasken zu verschiedenen Produkttypen:</u></br>'
  1302 + 'Eine Auswahl dieser Masken wird und-Verknuepft zu jedem Produkt und '
  1303 + 'zu jeder Warengruppe gespeichert. Ergibt eine oder-Verknuepfung der '
  1304 + 'Warengruppen-Maske und der Produkt-Maske einen Wert <> 0, so wird das '
  1305 + 'Produkt in der Warengruppe angezeigt.';
  1306 +
  1307 +select public.start_logging('produkt_typen', 'ALL');
  1308 +
  1309 +set search_path to trigger_func,waren;
  1310 +
  1311 +CREATE TRIGGER waren_trigger1_create_valid_typ_mask
  1312 + BEFORE INSERT OR UPDATE ON waren.produkt_typen FOR EACH ROW
  1313 + EXECUTE PROCEDURE create_valid_produkt_typ_mask();
  1314 +
  1315 +set search_path to waren;
  1316 +
  1317 +CREATE TABLE typ_table_columns (
  1318 + "produkt_typ" bit varying NOT NULL, -- produkt-typ
  1319 + "col_name" text NOT NULL, -- Name der Zusatzcolumn
  1320 + "col_type" text NOT NULL, -- Typ der Zusatzcolumn
  1321 + PRIMARY KEY (produkt_typ, col_name),
  1322 + CONSTRAINT fk_typ_table_columns
  1323 + FOREIGN KEY (produkt_typ) REFERENCES produkt_typen (produkt_typ)
  1324 + ON UPDATE CASCADE
  1325 + ON DELETE CASCADE);
  1326 +
  1327 +COMMENT ON TABLE typ_table_columns IS
  1328 + 'In dieser Tabelle findet man die definition der Zusatzdatenfelder zu '
  1329 + 'einem typ_table in produkt_typen.';
  1330 +
  1331 +COMMENT ON COLUMN typ_table_columns.produkt_typ IS 'produkt-typ';
  1332 +COMMENT ON COLUMN typ_table_columns.col_name IS 'Name der Zusatzcolumn';
  1333 +COMMENT ON COLUMN typ_table_columns.col_type IS 'Typ der Zusatzcolumn';
  1334 +
  1335 +select public.start_logging('typ_table_columns', 'ALL');
  1336 +
  1337 +-- produkt ist eine allgemeine Oberklassifizierung von Produkten. Es enthaelt
  1338 +-- alle Atribute, die alle Produkte gemeinsam haben.
  1339 +-- Ausserdem enthaelt es eine Verknuepfung in die Tabelle produkt_typen, in
  1340 +-- der etwaige Tabellen mit Zusatzinformationen zu bestimmten Produkten
  1341 +-- aufgelistet sind. Effektiv bedeutet das auch das der Admin und auch
  1342 +-- der Anzeigenbereich verschiedenen Anzeige und Eingabemasken fuer die
  1343 +-- verschiedenen Produkte zur verfuegung stellen muss.
  1344 +-- Das Backend liefert eine kombinierte Tabelle aus Produkt und der Speziellen
  1345 +-- Produktabelle, aus der auch hervorgeht um welchen Produktyp es sich handelt.
  1346 +create table produkt (
  1347 + "_id_" SERIAL NOT NULL PRIMARY KEY, -- interne id
  1348 + "name" text NOT NULL, -- Bezeichnung des Produktes
  1349 + "kurzbeschreibung" text NULL, -- Kruzbeschreibung
  1350 + "beschreibung" text NULL, -- Beschreibung
  1351 + "small_pic_path" text NULL, -- optionaler Pfad zu einem kleinen Bild
  1352 + "big_pic_path" text NULL, -- optionaler Pfad zu einem grossen Bild
  1353 + "preis" numeric(10,2) NOT NULL, -- Produktpreis (netto)
  1354 + "stueck" int4 DEFAULT 0 NOT NULL, -- verfuegbare Stueckmenge
  1355 + -- ACHTUNG: Das produkt wird in allen Warengruppen angezeigt, bei denen
  1356 + -- midestens ein Bit der Typ-Maske der Warengruppe mit einem Bit der
  1357 + -- Typ-Maske des Produkts uebereinstimmt.
  1358 + "produkt_typen" bit varying NULL); -- Produkttyp
  1359 +
  1360 +select public.start_logging('produkt', 'ALL');
  1361 +
  1362 +set search_path to public;
  1363 +-- ]
  1364 +-- Ende Waren, Warengruppen u. Lager --
  1365 +
  1366 +-- View auf Adressdaten --
  1367 +-- [
  1368 +set search_path to adresse;
  1369 +
  1370 +create view "adresse_v" (strasse,h_nr,plz_a,ort,vorwahl_o,
  1371 + land,lnd_kz,vorwahl_l) as
  1372 + select a.strasse, a.h_nr, a.plz_a, b.ort, b.vorwahl_o,
  1373 + c.land, c.lnd_kz, c.vorwahl_l from
  1374 + adresse.adresse a, adresse.ort b, adresse.land c where
  1375 + a.id_ort = b._id_ and
  1376 + b.id_land = c._id_;
  1377 +
  1378 +set search_path to public;
  1379 +-- ]
  1380 +-- ende view --
  1381 +
  1382 +-- View auf Personendaten --
  1383 +-- [
  1384 +set search_path to person;
  1385 +
  1386 +create view "person_v" (anrede,titel,nachname,vorname,geb_dat,age,
  1387 + postfach, telefon,fax,handy,email,webpage,
  1388 + strasse,h_nr,plz_a,ort,vorwahl_o,
  1389 + land,lnd_kz,vorwahl_l) as
  1390 + select a.anrede, a.titel, a. nachname, a.vorname, a.geb_dat,
  1391 + age(a.geb_dat), a.postfach, a.telefon, a.fax, a.handy,
  1392 + a.email, a.webpage, b.strasse, b.h_nr, b.plz_a, c.ort,
  1393 + c.vorwahl_o, d.land, d.lnd_kz, d.vorwahl_l from
  1394 + person.person a, person.wohnt ab,
  1395 + adresse.adresse b, adresse.ort c, adresse.land d where
  1396 + a._id_ = ab.id_person and
  1397 + b._id_ = ab.id_adresse and
  1398 + b.id_ort = c._id_ and
  1399 + c.id_land = d._id_;
  1400 +
  1401 +grant SELECT on person.person_v TO GROUP guest;
  1402 +
  1403 +set search_path to public;
  1404 +-- ]
  1405 +-- ende view --
  1406 +
  1407 +commit;
... ...
No preview for this file type
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
  1 +#FIG 3.2
  2 +Portrait
  3 +Center
  4 +Metric
  5 +A4
  6 +34.299999
  7 +Single
  8 +-2
  9 +1200 2
  10 +0 32 #ffffff
  11 +6 0 0 0 0
  12 +2 3 0 0 32 32 0 0 20 0.000000 0 0 0 0 0 5
  13 + -14500 3201 -13555 2634 -12610 3201 -13555 3768 -14500 3201
  14 +2 3 0 1 0 0 0 0 -1 0.000000 0 0 0 0 0 5
  15 + -14500 3201 -13555 2634 -12610 3201 -13555 3768 -14500 3201
  16 +4 2 0 0 0 16 22.762205 0.0 6 0.0 0.0 -14642 3059 n\001
  17 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -12469 3059 1\001
  18 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13555 3319 liegt in\001
  19 +-6
  20 +6 0 0 0 0
  21 +2 3 0 0 32 32 0 0 20 0.000000 0 0 0 0 0 5
  22 + -7924 5354 -7121 4872 -6317 5354 -7121 5835 -7924 5354
  23 +2 3 0 1 0 0 0 0 -1 0.000000 0 0 0 0 0 5
  24 + -7924 5354 -7121 4872 -6317 5354 -7121 5835 -7924 5354
  25 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7026 4730 1\001
  26 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7026 6355 n\001
  27 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7121 5472 ist in\001
  28 +-6
  29 +6 0 0 0 0
  30 +2 3 0 0 32 32 0 0 20 0.000000 0 0 0 0 0 5
  31 + -20297 5354 -19494 4872 -18691 5354 -19494 5835 -20297 5354
  32 +2 3 0 1 0 0 0 0 -1 0.000000 0 0 0 0 0 5
  33 + -20297 5354 -19494 4872 -18691 5354 -19494 5835 -20297 5354
  34 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -19399 4730 1\001
  35 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -19399 6355 n\001
  36 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -19494 5472 ist in\001
  37 +-6
  38 +6 0 0 0 0
  39 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  40 + -12610 3201 -7876 3201
  41 +-6
  42 +6 0 0 0 0
  43 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  44 + -7876 2728 -6365 2728 -6365 3673 -7876 3673 -7876 2728
  45 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  46 + -7876 2728 -6365 2728 -6365 3673 -7876 3673 -7876 2728
  47 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -7121 3319 land\001
  48 +-6
  49 +6 0 0 0 0
  50 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  51 + -20143 2728 -18844 2728 -18844 3673 -20143 3673 -20143 2728
  52 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  53 + -20143 2728 -18844 2728 -18844 3673 -20143 3673 -20143 2728
  54 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -19494 3319 ort\001
  55 +-6
  56 +6 0 0 0 0
  57 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  58 + -14500 3201 -18844 3201
  59 +-6
  60 +6 0 0 0 0
  61 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  62 + -19494 3673 -19494 4872
  63 +-6
  64 +6 0 0 0 0
  65 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  66 + -7121 3673 -7121 4872
  67 +-6
  68 +6 0 0 0 0
  69 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  70 + -19494 5835 -19494 6911 -14160 6911 -14160 8332 -14630 8332
  71 +-6
  72 +6 0 0 0 0
  73 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  74 + -7121 5835 -7121 6895 -12943 6895 -12943 8332 -12480 8332
  75 +-6
  76 +6 0 0 0 0
  77 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -19235 1787 732 425 0 0 0 0
  78 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -19235 1787 732 425 0 0 0 0
  79 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19235 1905 _id_\001
  80 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  81 + -19495 1976 -18975 1976
  82 +-6
  83 +6 0 0 0 0
  84 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -21294 1663 944 425 0 0 0 0
  85 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -21294 1663 944 425 0 0 0 0
  86 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21294 1781 id_land\001
  87 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  88 + -21767 1852 -20822 1852
  89 +-6
  90 +6 0 0 0 0
  91 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -21640 4242 1181 425 0 0 0 0
  92 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -21640 4242 1181 425 0 0 0 0
  93 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21640 4360 vorwahl_o\001
  94 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  95 + -22349 4431 -20932 4431
  96 +-6
  97 +6 0 0 0 0
  98 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -21310 2995 673 425 0 0 0 0
  99 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -21310 2995 673 425 0 0 0 0
  100 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21310 3114 ort\001
  101 +-6
  102 +6 0 0 0 0
  103 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -7741 1966 732 425 0 0 0 0
  104 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -7741 1966 732 425 0 0 0 0
  105 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -7741 2084 _id_\001
  106 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  107 + -8001 2155 -7481 2155
  108 +-6
  109 +6 0 0 0 0
  110 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -5851 1683 755 425 0 0 0 0
  111 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -5851 1683 755 425 0 0 0 0
  112 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -5851 1801 land\001
  113 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  114 + -6135 1872 -5568 1872
  115 +-6
  116 +6 0 0 0 0
  117 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -5426 3005 897 425 0 0 0 0
  118 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -5426 3005 897 425 0 0 0 0
  119 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -5426 3124 lnd_kz\001
  120 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  121 + -5851 3194 -5001 3194
  122 +-6
  123 +6 0 0 0 0
  124 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -5414 4234 1122 425 0 0 0 0
  125 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -5414 4234 1122 425 0 0 0 0
  126 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -5414 4352 vorwahl_l\001
  127 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  128 + -6064 4423 -4765 4423
  129 +-6
  130 +6 0 0 0 0
  131 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -15619 7612 767 425 0 0 0 0
  132 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -15619 7612 767 425 0 0 0 0
  133 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15619 7730 h_nr\001
  134 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  135 + -15914 7801 -15324 7801
  136 +-6
  137 +6 0 0 0 0
  138 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -16056 8651 826 425 0 0 0 0
  139 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -16056 8651 826 425 0 0 0 0
  140 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -16056 8769 plz_a\001
  141 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  142 + -16410 8840 -15702 8840
  143 +-6
  144 +6 0 0 0 0
  145 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -15714 9809 1003 425 0 0 0 0
  146 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -15714 9809 1003 425 0 0 0 0
  147 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15714 9927 strasse\001
  148 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  149 + -16245 9998 -15182 9998
  150 +-6
  151 +6 0 0 0 0
  152 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -11308 7565 944 425 0 0 0 0
  153 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -11308 7565 944 425 0 0 0 0
  154 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -11308 7683 id_land\001
  155 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  156 + -11781 7754 -10836 7754
  157 +-6
  158 +6 0 0 0 0
  159 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -10777 8675 862 425 0 0 0 0
  160 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -10777 8675 862 425 0 0 0 0
  161 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -10777 8793 id_ort\001
  162 +-6
  163 +6 0 0 0 0
  164 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -11344 9738 1240 425 0 0 0 0
  165 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -11344 9738 1240 425 0 0 0 0
  166 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -11344 9856 id_adresse\001
  167 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  168 + -12111 9927 -10576 9927
  169 +-6
  170 +6 0 0 0 0
  171 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  172 + -20805 3941 -20143 3673
  173 +-6
  174 +6 0 0 0 0
  175 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  176 + -20637 2995 -20143 3201
  177 +-6
  178 +6 0 0 0 0
  179 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  180 + -20626 1964 -20143 2728
  181 +-6
  182 +6 0 0 0 0
  183 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  184 + -19235 2212 -19494 2728
  185 +-6
  186 +6 0 0 0 0
  187 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  188 + -7741 2391 -7121 2728
  189 +-6
  190 +6 0 0 0 0
  191 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  192 + -6386 1983 -6365 2728
  193 +-6
  194 +6 0 0 0 0
  195 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  196 + -6324 3005 -6365 3201
  197 +-6
  198 +6 0 0 0 0
  199 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  200 + -6208 3933 -6365 3673
  201 +-6
  202 +6 0 0 0 0
  203 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  204 + -12480 7859 -12253 7565
  205 +-6
  206 +6 0 0 0 0
  207 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  208 + -12480 8332 -11639 8675
  209 +-6
  210 +6 0 0 0 0
  211 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  212 + -12480 8804 -12227 9437
  213 +-6
  214 +6 0 0 0 0
  215 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  216 + -15064 9508 -14630 8804
  217 +-6
  218 +6 0 0 0 0
  219 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  220 + -15206 8651 -14630 8332
  221 +-6
  222 +6 0 0 0 0
  223 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  224 + -14851 7612 -14630 7859
  225 +-6
  226 +6 0 0 0 0
  227 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  228 + -20788 12768 -19891 12230 -18993 12768 -19891 13307 -20788 12768
  229 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  230 + -20788 12768 -19891 12230 -18993 12768 -19891 13307 -20788 12768
  231 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -19796 12088 1,n\001
  232 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -19796 13827 1,m\001
  233 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -19891 12887 wohnt\001
  234 +-6
  235 +6 0 0 0 0
  236 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  237 + -7841 12768 -7121 12336 -6400 12768 -7121 13201 -7841 12768
  238 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  239 + -7841 12768 -7121 12336 -6400 12768 -7121 13201 -7841 12768
  240 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7026 12194 1\001
  241 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7026 13720 1,n\001
  242 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7121 12887 sitz\001
  243 +-6
  244 +6 0 0 0 0
  245 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  246 + -8278 18605 -7121 17911 -5963 18605 -7121 19300 -8278 18605
  247 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  248 + -8278 18605 -7121 17911 -5963 18605 -7121 19300 -8278 18605
  249 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7026 17769 1,n\001
  250 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7026 19820 1\001
  251 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7121 18724 geh\303\266rt zu\001
  252 +-6
  253 +6 0 0 0 0
  254 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  255 + -19891 12230 -19891 10872 -14152 10872 -14152 8332 -14630 8332
  256 +-6
  257 +6 0 0 0 0
  258 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  259 + -7121 12336 -7121 10872 -12971 10872 -12971 8332 -12480 8332
  260 +-6
  261 +6 0 0 0 0
  262 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  263 + -14630 7859 -12480 7859 -12480 8804 -14630 8804 -14630 7859
  264 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  265 + -14630 7859 -12480 7859 -12480 8804 -14630 8804 -14630 7859
  266 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -13555 8450 adresse\001
  267 +-6
  268 +6 0 0 0 0
  269 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 3
  270 + -19891 13307 -19891 21265 -20599 21265
  271 +-6
  272 +6 0 0 0 0
  273 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 4
  274 + -18662 21265 -19427 21265 -19427 15776 -15261 15776
  275 +-6
  276 +6 0 0 0 0
  277 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -21510 11864 1240 425 0 0 0 0
  278 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -21510 11864 1240 425 0 0 0 0
  279 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21510 11982 id_adresse\001
  280 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  281 + -22278 12053 -20743 12053
  282 +-6
  283 +6 0 0 0 0
  284 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -21534 13659 1169 425 0 0 0 0
  285 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -21534 13659 1169 425 0 0 0 0
  286 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21534 13777 id_person\001
  287 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  288 + -22231 13848 -20837 13848
  289 +-6
  290 +6 0 0 0 0
  291 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  292 + -20727 13358 -20340 13038
  293 +-6
  294 +6 0 0 0 0
  295 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  296 + -20674 12164 -20340 12499
  297 +-6
  298 +6 0 0 0 0
  299 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -16702 14982 1169 425 0 0 0 0
  300 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -16702 14982 1169 425 0 0 0 0
  301 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -16702 15100 id_person\001
  302 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  303 + -17398 15171 -16005 15171
  304 +-6
  305 +6 0 0 0 0
  306 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -15733 13801 1098 425 0 0 0 0
  307 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -15733 13801 1098 425 0 0 0 0
  308 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15733 13919 best\303\244tigt\001
  309 +-6
  310 +6 0 0 0 0
  311 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -12733 13801 1311 425 0 0 0 0
  312 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -12733 13801 1311 425 0 0 0 0
  313 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -12733 13919 id_abteilung\001
  314 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  315 + -13572 13990 -11894 13990
  316 +-6
  317 +6 0 0 0 0
  318 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -14268 14580 838 425 0 0 0 0
  319 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -14268 14580 838 425 0 0 0 0
  320 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14268 14698 email\001
  321 +-6
  322 +6 0 0 0 0
  323 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -12485 17793 968 425 0 0 0 0
  324 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -12485 17793 968 425 0 0 0 0
  325 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -12485 17911 telefon\001
  326 +-6
  327 +6 0 0 0 0
  328 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -11788 16399 673 425 0 0 0 0
  329 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -11788 16399 673 425 0 0 0 0
  330 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -11788 16517 fax\001
  331 +-6
  332 +6 0 0 0 0
  333 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -14009 17013 909 425 0 0 0 0
  334 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -14009 17013 909 425 0 0 0 0
  335 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14009 17131 gehalt\001
  336 +-6
  337 +6 0 0 0 0
  338 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -15922 17840 1452 425 0 0 0 0
  339 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -15922 17840 1452 425 0 0 0 0
  340 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -15922 17840 1263 330 0 0 0 0
  341 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15922 17958 beschreibung\001
  342 +-6
  343 +6 0 0 0 0
  344 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -16501 16824 1039 425 0 0 0 0
  345 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -16501 16824 1039 425 0 0 0 0
  346 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -16501 16943 position\001
  347 +-6
  348 +6 0 0 0 0
  349 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  350 + -13324 15776 -8408 15776
  351 +-6
  352 +6 0 0 0 0
  353 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13278 15667 1,n\001
  354 +-6
  355 +6 0 0 0 0
  356 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -15590 15643 m\001
  357 +-6
  358 +6 0 0 0 0
  359 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  360 + -15895 15283 -13324 15776
  361 +-6
  362 +6 0 0 0 0
  363 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  364 + -15745 14226 -14292 16357
  365 +-6
  366 +6 0 0 0 0
  367 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  368 + -12733 14226 -13324 15194
  369 +-6
  370 +6 0 0 0 0
  371 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  372 + -12461 16399 -15261 15194
  373 +-6
  374 +6 0 0 0 0
  375 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  376 + -12485 17368 -13324 16357
  377 +-6
  378 +6 0 0 0 0
  379 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  380 + -14009 16588 -14292 15194
  381 +-6
  382 +6 0 0 0 0
  383 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  384 + -15934 17415 -13324 15194
  385 +-6
  386 +6 0 0 0 0
  387 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  388 + -15786 16524 -15261 16357
  389 +-6
  390 +6 0 0 0 0
  391 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  392 + -15261 15194 -13324 15194 -13324 16357 -15261 16357 -15261 15194
  393 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  394 + -15261 15194 -13324 15194 -13324 16357 -15261 16357 -15261 15194
  395 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  396 + -15261 15776 -14292 15194 -13324 15776 -14292 16357 -15261 15776
  397 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  398 + -15261 15776 -14292 15194 -13324 15776 -14292 16357 -15261 15776
  399 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -14292 15894 arbeit\001
  400 +-6
  401 +6 0 0 0 0
  402 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  403 + -14268 15005 -14292 15194
  404 +-6
  405 +6 0 0 0 0
  406 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  407 + -7121 13201 -7121 15303
  408 +-6
  409 +6 0 0 0 0
  410 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  411 + -7121 16248 -7121 17911
  412 +-6
  413 +6 0 0 0 0
  414 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  415 + -7121 19300 -7121 21265
  416 +-6
  417 +6 0 0 0 0
  418 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -9501 14958 1240 425 0 0 0 0
  419 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -9501 14958 1240 425 0 0 0 0
  420 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9501 15076 id_adresse\001
  421 +-6
  422 +6 0 0 0 0
  423 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -8863 17061 1003 425 0 0 0 0
  424 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -8863 17061 1003 425 0 0 0 0
  425 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -8863 17179 id_firma\001
  426 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  427 + -9394 17250 -8331 17250
  428 +-6
  429 +6 0 0 0 0
  430 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -8213 14061 968 425 0 0 0 0
  431 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -8213 14061 968 425 0 0 0 0
  432 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -8213 14179 telefon\001
  433 +-6
  434 +6 0 0 0 0
  435 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -6099 14486 673 425 0 0 0 0
  436 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -6099 14486 673 425 0 0 0 0
  437 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -6099 14604 fax\001
  438 +-6
  439 +6 0 0 0 0
  440 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -3040 15029 1086 425 0 0 0 0
  441 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3040 15029 1086 425 0 0 0 0
  442 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3040 15147 postfach\001
  443 +-6
  444 +6 0 0 0 0
  445 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -4008 16021 1370 425 0 0 0 0
  446 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -4008 16021 1370 425 0 0 0 0
  447 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -4008 16139 bezeichnung\001
  448 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  449 + -4906 16210 -3111 16210
  450 +-6
  451 +6 0 0 0 0
  452 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -6253 16919 732 425 0 0 0 0
  453 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -6253 16919 732 425 0 0 0 0
  454 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -6253 17037 _id_\001
  455 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  456 + -6512 17108 -5993 17108
  457 +-6
  458 +6 0 0 0 0
  459 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -4280 14202 838 425 0 0 0 0
  460 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -4280 14202 838 425 0 0 0 0
  461 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -4280 14320 email\001
  462 +-6
  463 +6 0 0 0 0
  464 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -3713 17202 1452 425 0 0 0 0
  465 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3713 17202 1452 425 0 0 0 0
  466 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3713 17202 1263 330 0 0 0 0
  467 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3713 17320 beschreibung\001
  468 +-6
  469 +6 0 0 0 0
  470 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  471 + -8213 14486 -7121 16248
  472 +-6
  473 +6 0 0 0 0
  474 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  475 + -8664 15259 -7121 16248
  476 +-6
  477 +6 0 0 0 0
  478 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  479 + -8863 16635 -8408 16248
  480 +-6
  481 +6 0 0 0 0
  482 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  483 + -6253 16494 -7121 15303
  484 +-6
  485 +6 0 0 0 0
  486 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  487 + -4744 16902 -5833 16248
  488 +-6
  489 +6 0 0 0 0
  490 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  491 + -4127 15029 -5833 15776
  492 +-6
  493 +6 0 0 0 0
  494 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  495 + -5379 16021 -8408 15776
  496 +-6
  497 +6 0 0 0 0
  498 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  499 + -6575 14786 -7121 16248
  500 +-6
  501 +6 0 0 0 0
  502 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  503 + -4873 14503 -7121 16248
  504 +-6
  505 +6 0 0 0 0
  506 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  507 + -8408 15303 -5833 15303 -5833 16248 -8408 16248 -8408 15303
  508 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  509 + -8408 15303 -5833 15303 -5833 16248 -8408 16248 -8408 15303
  510 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -7121 15894 abteilung\001
  511 +-6
  512 +6 0 0 0 0
  513 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -20980 19305 732 425 0 0 0 0
  514 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -20980 19305 732 425 0 0 0 0
  515 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -20980 19423 _id_\001
  516 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  517 + -21240 19494 -20720 19494
  518 +-6
  519 +6 0 0 0 0
  520 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -21736 20415 1039 425 0 0 0 0
  521 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -21736 20415 1039 425 0 0 0 0
  522 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21736 20533 geb_dat\001
  523 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  524 + -22303 20604 -21169 20604
  525 +-6
  526 +6 0 0 0 0
  527 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -18299 23391 885 425 0 0 0 0
  528 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -18299 23391 885 425 0 0 0 0
  529 +4 1 0 0 0 12 22.762205 0.0 6 0.0 0.0 -18299 23509 titel\001
  530 +-6
  531 +6 0 0 0 0
  532 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -22137 23486 1181 425 0 0 0 0
  533 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -22137 23486 1181 425 0 0 0 0
  534 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -22137 23604 nachname\001
  535 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  536 + -22846 23675 -21429 23675
  537 +-6
  538 +6 0 0 0 0
  539 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -22208 21383 968 425 0 0 0 0
  540 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -22208 21383 968 425 0 0 0 0
  541 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -22208 21502 anrede\001
  542 +-6
  543 +6 0 0 0 0
  544 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -22102 22470 1074 425 0 0 0 0
  545 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -22102 22470 1074 425 0 0 0 0
  546 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -22102 22588 vorname\001
  547 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  548 + -22704 22659 -21499 22659
  549 +-6
  550 +6 0 0 0 0
  551 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -16551 22399 1145 425 0 0 0 0
  552 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -16551 22399 1145 425 0 0 0 0
  553 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -16551 22517 webpage\001
  554 +-6
  555 +6 0 0 0 0
  556 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -17614 20887 673 425 0 0 0 0
  557 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -17614 20887 673 425 0 0 0 0
  558 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -17614 21005 fax\001
  559 +-6
  560 +6 0 0 0 0
  561 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -18440 19848 838 425 0 0 0 0
  562 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -18440 19848 838 425 0 0 0 0
  563 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -18440 19966 email\001
  564 +-6
  565 +6 0 0 0 0
  566 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -16161 23368 1086 425 0 0 0 0
  567 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -16161 23368 1086 425 0 0 0 0
  568 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -16161 23486 postfach\001
  569 +-6
  570 +6 0 0 0 0
  571 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -16515 20061 874 425 0 0 0 0
  572 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -16515 20061 874 425 0 0 0 0
  573 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -16515 20179 handy\001
  574 +-6
  575 +6 0 0 0 0
  576 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -15925 21478 968 425 0 0 0 0
  577 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -15925 21478 968 425 0 0 0 0
  578 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15925 21596 telefon\001
  579 +-6
  580 +6 0 0 0 0
  581 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  582 + -20462 19605 -19631 21738
  583 +-6
  584 +6 0 0 0 0
  585 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  586 + -20696 20415 -18662 21738
  587 +-6
  588 +6 0 0 0 0
  589 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  590 + -21240 21383 -19631 20793
  591 +-6
  592 +6 0 0 0 0
  593 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  594 + -21342 22169 -20599 21738
  595 +-6
  596 +6 0 0 0 0
  597 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  598 + -21302 23185 -19631 20793
  599 +-6
  600 +6 0 0 0 0
  601 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  602 + -18299 22966 -19631 20793
  603 +-6
  604 +6 0 0 0 0
  605 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  606 + -17248 23368 -18662 21738
  607 +-6
  608 +6 0 0 0 0
  609 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  610 + -17361 22099 -20599 20793
  611 +-6
  612 +6 0 0 0 0
  613 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  614 + -16893 21478 -20599 21265
  615 +-6
  616 +6 0 0 0 0
  617 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  618 + -18287 20887 -18662 21265
  619 +-6
  620 +6 0 0 0 0
  621 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  622 + -17389 20061 -20599 21738
  623 +-6
  624 +6 0 0 0 0
  625 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  626 + -19033 20149 -19631 21738
  627 +-6
  628 +6 0 0 0 0
  629 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -9100 20532 732 425 0 0 0 0
  630 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -9100 20532 732 425 0 0 0 0
  631 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9100 20650 _id_\001
  632 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  633 + -9360 20721 -8840 20721
  634 +-6
  635 +6 0 0 0 0
  636 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -9383 21784 850 425 0 0 0 0
  637 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -9383 21784 850 425 0 0 0 0
  638 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9383 21902 name\001
  639 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  640 + -9761 21973 -9005 21973
  641 +-6
  642 +6 0 0 0 0
  643 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -9112 23083 791 425 0 0 0 0
  644 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -9112 23083 791 425 0 0 0 0
  645 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9112 23201 plz_f\001
  646 +-6
  647 +6 0 0 0 0
  648 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -4978 20697 1145 425 0 0 0 0
  649 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -4978 20697 1145 425 0 0 0 0
  650 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -4978 20815 webpage\001
  651 +-6
  652 +6 0 0 0 0
  653 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -4175 21784 1452 425 0 0 0 0
  654 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -4175 21784 1452 425 0 0 0 0
  655 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -4175 21784 1263 330 0 0 0 0
  656 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -4175 21902 beschreibung\001
  657 +-6
  658 +6 0 0 0 0
  659 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -5025 22989 838 425 0 0 0 0
  660 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -5025 22989 838 425 0 0 0 0
  661 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -5025 23107 email\001
  662 +-6
  663 +6 0 0 0 0
  664 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  665 + -8582 20833 -7983 21265
  666 +-6
  667 +6 0 0 0 0
  668 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  669 + -8533 21784 -7983 21738
  670 +-6
  671 +6 0 0 0 0
  672 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  673 + -8532 22783 -7983 22210
  674 +-6
  675 +6 0 0 0 0
  676 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  677 + -5788 20998 -6258 21265
  678 +-6
  679 +6 0 0 0 0
  680 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  681 + -5627 21784 -6258 21738
  682 +-6
  683 +6 0 0 0 0
  684 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  685 + -5618 22688 -6258 22210
  686 +-6
  687 +6 0 0 0 0
  688 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  689 + -17999 29220 -17101 28681 -16204 29220 -17101 29758 -17999 29220
  690 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  691 + -17999 29220 -17101 28681 -16204 29220 -17101 29758 -17999 29220
  692 +4 2 0 0 0 16 22.762205 0.0 6 0.0 0.0 -18141 29078 0,1\001
  693 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -16062 29078 1\001
  694 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -17101 29338 ist ein\001
  695 +-6
  696 +6 0 0 0 0
  697 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  698 + -14526 30987 -13629 30448 -12731 30987 -13629 31525 -14526 30987
  699 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  700 + -14526 30987 -13629 30448 -12731 30987 -13629 31525 -14526 30987
  701 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13534 30306 1\001
  702 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13534 32045 0,1\001
  703 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13629 31105 ist ein\001
  704 +-6
  705 +6 0 0 0 0
  706 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  707 + -11591 36473 -10693 35934 -9795 36473 -10693 37012 -11591 36473
  708 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  709 + -11591 36473 -10693 35934 -9795 36473 -10693 37012 -11591 36473
  710 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -10599 35793 1\001
  711 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -10599 37531 0,1\001
  712 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -10693 36591 ist ein\001
  713 +-6
  714 +6 0 0 0 0
  715 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  716 + -9276 36473 -8378 35934 -7481 36473 -8378 37012 -9276 36473
  717 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  718 + -9276 36473 -8378 35934 -7481 36473 -8378 37012 -9276 36473
  719 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -8284 35793 1\001
  720 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -8284 37531 0,1\001
  721 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -8378 36591 ist ein\001
  722 +-6
  723 +6 0 0 0 0
  724 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  725 + -16605 33064 -15920 32652 -15235 33064 -15920 33475 -16605 33064
  726 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  727 + -16605 33064 -15920 32652 -15235 33064 -15920 33475 -16605 33064
  728 +4 2 0 0 0 16 22.762205 0.0 6 0.0 0.0 -16747 32922 n\001
  729 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -15093 32922 m\001
  730 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -15920 33182 hat\001
  731 +-6
  732 +6 0 0 0 0
  733 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  734 + -8196 29220 -7357 28717 -6518 29220 -7357 29723 -8196 29220
  735 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  736 + -8196 29220 -7357 28717 -6518 29220 -7357 29723 -8196 29220
  737 +4 2 0 0 0 16 22.762205 0.0 6 0.0 0.0 -8337 29078 1\001
  738 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -6377 29078 1\001
  739 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -7357 29338 offen\001
  740 +-6
  741 +6 0 0 0 0
  742 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  743 + -21843 36473 -20945 35934 -20047 36473 -20945 37012 -21843 36473
  744 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  745 + -21843 36473 -20945 35934 -20047 36473 -20945 37012 -21843 36473
  746 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20851 35793 0,1\001
  747 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20851 37531 0,1\001
  748 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20945 36591 ist ein\001
  749 +-6
  750 +6 0 0 0 0
  751 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  752 + -24040 36473 -23142 35934 -22244 36473 -23142 37012 -24040 36473
  753 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  754 + -24040 36473 -23142 35934 -22244 36473 -23142 37012 -24040 36473
  755 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -23047 35793 0,1\001
  756 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -23047 37531 0,1\001
  757 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -23142 36591 ist ein\001
  758 +-6
  759 +6 0 0 0 0
  760 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  761 + -10912 26617 -10014 26078 -9117 26617 -10014 27155 -10912 26617
  762 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  763 + -10912 26617 -10014 26078 -9117 26617 -10014 27155 -10912 26617
  764 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -9920 25936 0,1\001
  765 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -9920 27675 1\001
  766 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -10014 26735 ist ein\001
  767 +-6
  768 +6 0 0 0 0
  769 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 4
  770 + -18662 21265 -19414 21265 -19414 29220 -17999 29220
  771 +-6
  772 +6 0 0 0 0
  773 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  774 + -16204 29220 -11195 29220
  775 +-6
  776 +6 0 0 0 0
  777 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  778 + -7983 21738 -7544 21738 -7544 24637 -20945 24637 -20945 35934
  779 +-6
  780 +6 0 0 0 0
  781 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  782 + -20599 21265 -19940 21265 -19940 24259 -23142 24259 -23142 35934
  783 +-6
  784 +6 0 0 0 0
  785 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  786 + -20599 20793 -18662 20793 -18662 21738 -20599 21738 -20599 20793
  787 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  788 + -20599 20793 -18662 20793 -18662 21738 -20599 21738 -20599 20793
  789 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -19631 21383 person\001
  790 +-6
  791 +6 0 0 0 0
  792 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  793 + -6258 21738 -6669 21738 -6669 25558 -10014 25558 -10014 26078
  794 +-6
  795 +6 0 0 0 0
  796 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  797 + -7983 21265 -6258 21265 -6258 22210 -7983 22210 -7983 21265
  798 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  799 + -7983 21265 -6258 21265 -6258 22210 -7983 22210 -7983 21265
  800 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -7121 21856 firma\001
  801 +-6
  802 +6 0 0 0 0
  803 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  804 + -10014 27155 -10014 28747
  805 +-6
  806 +6 0 0 0 0
  807 +5 1 2 1 0 0 0 0 -1 31.496063 0 1 1 0 0.000000 0.000000 -15489 26517 -16614 27362 -17101 28681
  808 + 0 0 1.574803 236.220472 236.220472
  809 +-6
  810 +6 0 0 0 0
  811 +5 1 2 1 0 0 0 0 -1 31.496063 0 1 1 0 0.000000 0.000000 -14468 26007 -12416 25589 -10463 26347
  812 + 0 0 1.574803 236.220472 236.220472
  813 +-6
  814 +6 0 0 0 0
  815 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  816 + -8833 29220 -8196 29220
  817 +-6
  818 +6 0 0 0 0
  819 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  820 + -6518 29220 -5809 29220
  821 +-6
  822 +6 0 0 0 0
  823 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  824 + -8833 29220 -9925 29220 -9925 34511 -10693 34511 -10693 35934
  825 +-6
  826 +6 0 0 0 0
  827 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  828 + -8833 29220 -9240 29220 -9240 34511 -8378 34511 -8378 35934
  829 +-6
  830 +6 0 0 0 0
  831 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  832 + -11195 29220 -11082 29220 -11082 29480 -13629 29480 -13629 30448
  833 +-6
  834 +6 0 0 0 0
  835 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  836 + -13629 31525 -13629 32591
  837 +-6
  838 +6 0 0 0 0
  839 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  840 + -14491 33064 -15235 33064
  841 +-6
  842 +6 0 0 0 0
  843 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  844 + -17408 33064 -16605 33064
  845 +-6
  846 +6 0 0 0 0
  847 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -18864 31653 933 425 0 0 0 0
  848 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -18864 31653 933 425 0 0 0 0
  849 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -18864 31771 maske\001
  850 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  851 + -19325 31842 -18404 31842
  852 +-6
  853 +6 0 0 0 0
  854 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -19396 34180 850 425 0 0 0 0
  855 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -19396 34180 850 425 0 0 0 0
  856 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19396 34299 name\001
  857 +-6
  858 +6 0 0 0 0
  859 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -12983 34157 933 425 0 0 0 0
  860 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -12983 34157 933 425 0 0 0 0
  861 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -12983 34275 rechte\001
  862 +-6
  863 +6 0 0 0 0
  864 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -11790 33023 732 425 0 0 0 0
  865 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -11790 33023 732 425 0 0 0 0
  866 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -11790 33141 _id_\001
  867 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  868 + -12050 33212 -11530 33212
  869 +-6
  870 +6 0 0 0 0
  871 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -14400 35031 1287 425 0 0 0 0
  872 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -14400 35031 1287 425 0 0 0 0
  873 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14400 35149 id_benutzer\001
  874 +-6
  875 +6 0 0 0 0
  876 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -11128 30377 732 425 0 0 0 0
  877 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -11128 30377 732 425 0 0 0 0
  878 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -11128 30495 _id_\001
  879 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  880 + -11388 30566 -10868 30566
  881 +-6
  882 +6 0 0 0 0
  883 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -11636 28133 1169 425 0 0 0 0
  884 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -11636 28133 1169 425 0 0 0 0
  885 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -11636 28251 id_person\001
  886 +-6
  887 +6 0 0 0 0
  888 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -3994 27968 732 425 0 0 0 0
  889 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3994 27968 732 425 0 0 0 0
  890 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3994 28086 _id_\001
  891 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  892 + -4254 28157 -3735 28157
  893 +-6
  894 +6 0 0 0 0
  895 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -3782 30590 732 425 0 0 0 0
  896 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3782 30590 732 425 0 0 0 0
  897 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3782 30590 543 330 0 0 0 0
  898 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3782 30708 info\001
  899 +-6
  900 +6 0 0 0 0
  901 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -8617 28062 1003 425 0 0 0 0
  902 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -8617 28062 1003 425 0 0 0 0
  903 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -8617 28180 id_firma\001
  904 +-6
  905 +6 0 0 0 0
  906 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  907 + -10829 28434 -10014 29692
  908 +-6
  909 +6 0 0 0 0
  910 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  911 + -9326 28363 -10014 29692
  912 +-6
  913 +6 0 0 0 0
  914 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  915 + -10610 30077 -10014 28747
  916 +-6
  917 +6 0 0 0 0
  918 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  919 + -6979 30820 -9953 28795
  920 +-6
  921 +6 0 0 0 0
  922 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -7786 30519 1169 425 0 0 0 0
  923 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -7786 30519 1169 425 0 0 0 0
  924 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -7786 30637 username\001
  925 +-6
  926 +6 0 0 0 0
  927 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  928 + -11195 28747 -8833 28747 -8833 29692 -11195 29692 -11195 28747
  929 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  930 + -11195 28747 -8833 28747 -8833 29692 -11195 29692 -11195 28747
  931 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -10014 29338 benutzer\001
  932 +-6
  933 +6 0 0 0 0
  934 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  935 + -3782 30165 -4735 28747
  936 +-6
  937 +6 0 0 0 0
  938 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  939 + -3994 28393 -4735 29692
  940 +-6
  941 +6 0 0 0 0
  942 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  943 + -5809 28747 -3660 28747 -3660 29692 -5809 29692 -5809 28747
  944 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  945 + -5809 28747 -3660 28747 -3660 29692 -5809 29692 -5809 28747
  946 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -4735 29338 session\001
  947 +-6
  948 +6 0 0 0 0
  949 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  950 + -12522 33023 -12767 33064
  951 +-6
  952 +6 0 0 0 0
  953 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  954 + -12983 33732 -13629 32591
  955 +-6
  956 +6 0 0 0 0
  957 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  958 + -18876 32078 -18457 32621
  959 +-6
  960 +6 0 0 0 0
  961 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  962 + -18795 33880 -18377 33536
  963 +-6
  964 +6 0 0 0 0
  965 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  966 + -19345 32591 -17408 32591 -17408 33536 -19345 33536 -19345 32591
  967 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  968 + -19345 32591 -17408 32591 -17408 33536 -19345 33536 -19345 32591
  969 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -18377 33182 rechte\001
  970 +-6
  971 +6 0 0 0 0
  972 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  973 + -14388 34606 -13629 32591
  974 +-6
  975 +6 0 0 0 0
  976 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  977 + -14491 32591 -12767 32591 -12767 33536 -14491 33536 -14491 32591
  978 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  979 + -14491 32591 -12767 32591 -12767 33536 -14491 33536 -14491 32591
  980 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -13629 33182 admin\001
  981 +-6
  982 +6 0 0 0 0
  983 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  984 + -17468 30448 -15902 30448 -15603 30586 -15603 31137 -17468 31137 -17468 30448
  985 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  986 + -17468 30448 -15902 30448 -15603 30586 -15603 31137 -17468 31137 -17468 30448
  987 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  988 + -15902 30448 -15902 30586
  989 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  990 + -15902 30586 -15603 30586
  991 +4 0 0 0 0 12 19.916929 0.0 6 0.0 0.0 -17281 30863 Bitmaske\001
  992 +-6
  993 +6 0 0 0 0
  994 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  995 + -6578 34724 -1416 34724 -432 35329 -432 37751 -6578 37751 -6578 34724
  996 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  997 + -6578 34724 -1416 34724 -432 35329 -432 37751 -6578 37751 -6578 34724
  998 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  999 + -1416 34724 -1416 35329
  1000 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1001 + -1416 35329 -432 35329
  1002 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 35151 WEB-Shop System ERM\001
  1003 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 35481 Seite 1\001
  1004 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 35812 \001
  1005 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 36143 Autor: Georg Steffers\001
  1006 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 36473 E-Mail: georg@steffers.org\001
  1007 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 36804 \001
  1008 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 37135 Copyright (C)2004 Georg Steffers\001
  1009 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -5964 37466 erzeugt mit DIA V0.93\001
  1010 +-6
  1011 +6 0 0 0 0
  1012 +5 1 3 1 0 0 0 0 -1 31.496063 0 1 1 0 0.000000 0.000000 -17468 30792 -17951 30930 -18225 31352
  1013 + 0 0 1.574803 236.220472 236.220472
  1014 +-6
  1015 +6 0 0 0 0
  1016 +2 1 3 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1017 + -24113 25247 -2381 25247
  1018 +-6
  1019 +6 0 0 0 0
  1020 +2 1 3 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1021 + -24113 10648 -2381 10648
  1022 +-6
  1023 +6 0 0 0 0
  1024 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  1025 + -2858 9332 -820 9332 -432 9474 -432 10044 -2858 10044 -2858 9332
  1026 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1027 + -2858 9332 -820 9332 -432 9474 -432 10044 -2858 10044 -2858 9332
  1028 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1029 + -820 9332 -820 9474
  1030 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1031 + -820 9474 -432 9474
  1032 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1645 9759 Adressdaten\001
  1033 +-6
  1034 +6 0 0 0 0
  1035 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  1036 + -3212 23741 -877 23741 -432 23950 -432 24784 -3212 24784 -3212 23741
  1037 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1038 + -3212 23741 -877 23741 -432 23950 -432 24784 -3212 24784 -3212 23741
  1039 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1040 + -877 23741 -877 23950
  1041 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1042 + -877 23950 -432 23950
  1043 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1822 24168 Personen- und\001
  1044 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1822 24499 Firmendaten\001
  1045 +-6
  1046 +6 0 0 0 0
  1047 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  1048 + -2681 33072 -792 33072 -432 33281 -432 34115 -2681 34115 -2681 33072
  1049 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1050 + -2681 33072 -792 33072 -432 33281 -432 34115 -2681 34115 -2681 33072
  1051 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1052 + -792 33072 -792 33281
  1053 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1054 + -792 33281 -432 33281
  1055 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1557 33499 Benutzer-\001
  1056 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1557 33830 verwaltung\001
  1057 +-6
  1058 +6 0 0 0 0
  1059 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1060 + -24040 39779 -23142 39240 -22244 39779 -23142 40317 -24040 39779
  1061 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1062 + -24040 39779 -23142 39240 -22244 39779 -23142 40317 -24040 39779
  1063 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -23047 39098 0,1\001
  1064 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -23047 40837 0,1\001
  1065 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -23142 39897 ist ein\001
  1066 +-6
  1067 +6 0 0 0 0
  1068 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1069 + -21843 39779 -20945 39240 -20047 39779 -20945 40317 -21843 39779
  1070 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1071 + -21843 39779 -20945 39240 -20047 39779 -20945 40317 -21843 39779
  1072 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20851 39098 0,1\001
  1073 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20851 40837 0,1\001
  1074 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20945 39897 ist ein\001
  1075 +-6
  1076 +6 0 0 0 0
  1077 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1078 + -11591 39779 -10693 39240 -9795 39779 -10693 40317 -11591 39779
  1079 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1080 + -11591 39779 -10693 39240 -9795 39779 -10693 40317 -11591 39779
  1081 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -10599 39098 1\001
  1082 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -10599 40837 0,1\001
  1083 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -10693 39897 ist ein\001
  1084 +-6
  1085 +6 0 0 0 0
  1086 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1087 + -9276 39779 -8378 39240 -7481 39779 -8378 40317 -9276 39779
  1088 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1089 + -9276 39779 -8378 39240 -7481 39779 -8378 40317 -9276 39779
  1090 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -8284 39098 1\001
  1091 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -8284 40837 0,1\001
  1092 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -8378 39897 ist ein\001
  1093 +-6
  1094 +6 0 0 0 0
  1095 +2 1 1 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1096 + -23142 37012 -23142 39240
  1097 +-6
  1098 +6 0 0 0 0
  1099 +2 1 1 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1100 + -20945 37012 -20945 39240
  1101 +-6
  1102 +6 0 0 0 0
  1103 +2 1 1 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1104 + -10693 37012 -10693 39240
  1105 +-6
  1106 +6 0 0 0 0
  1107 +2 1 1 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1108 + -8378 37012 -8378 39240
  1109 +-6
  1110 +6 0 0 0 0
  1111 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1112 + -23142 40317 -23142 41130 -22295 41130 -22295 42523 -23510 42523
  1113 +-6
  1114 +6 0 0 0 0
  1115 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1116 + -20945 40317 -20945 41130 -21869 41130 -21869 42523 -20935 42523
  1117 +-6
  1118 +6 0 0 0 0
  1119 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 3
  1120 + -10693 40317 -10693 42523 -11948 42523
  1121 +-6
  1122 +6 0 0 0 0
  1123 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 3
  1124 + -8378 40317 -8378 42523 -6777 42523
  1125 +-6
  1126 +6 0 0 0 0
  1127 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1128 + -23356 45094 -22222 44413 -21088 45094 -22222 45774 -23356 45094
  1129 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1130 + -23356 45094 -22222 44413 -21088 45094 -22222 45774 -23356 45094
  1131 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -22128 44271 n\001
  1132 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -22128 46294 2\001
  1133 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -22222 45212 deb/kred\001
  1134 +-6
  1135 +6 0 0 0 0
  1136 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1137 + -14263 45084 -13129 44404 -11995 45084 -13129 45764 -14263 45084
  1138 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1139 + -14263 45084 -13129 44404 -11995 45084 -13129 45764 -14263 45084
  1140 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13035 44262 n\001
  1141 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13035 46284 2\001
  1142 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -13129 45202 deb/kred\001
  1143 +-6
  1144 +6 0 0 0 0
  1145 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1146 + -7049 45060 -5915 44380 -4781 45060 -5915 45741 -7049 45060
  1147 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1148 + -7049 45060 -5915 44380 -4781 45060 -5915 45741 -7049 45060
  1149 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5821 44238 n\001
  1150 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5821 46260 2\001
  1151 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5915 45179 deb/kred\001
  1152 +-6
  1153 +6 0 0 0 0
  1154 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1155 + -22222 42996 -22222 44413
  1156 +-6
  1157 +6 0 0 0 0
  1158 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1159 + -13129 42996 -13129 44404
  1160 +-6
  1161 +6 0 0 0 0
  1162 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1163 + -5915 42996 -5915 44380
  1164 +-6
  1165 +6 0 0 0 0
  1166 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1167 + -13129 45764 -13129 46780 -11806 46780 -11806 50554 -12672 50554
  1168 +-6
  1169 +6 0 0 0 0
  1170 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1171 + -5915 45741 -5915 46780 -11381 46780 -11381 50554 -10948 50554
  1172 +-6
  1173 +6 0 0 0 0
  1174 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1175 + -22222 45774 -22222 47718 -12255 47718 -12255 50554 -12672 50554
  1176 +-6
  1177 +6 0 0 0 0
  1178 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -15073 50417 n\001
  1179 +-6
  1180 +6 0 0 0 0
  1181 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -18466 50417 1\001
  1182 +-6
  1183 +6 0 0 0 0
  1184 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -16582 51779 n\001
  1185 +-6
  1186 +6 0 0 0 0
  1187 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1188 + -15177 50554 -12672 50554
  1189 +-6
  1190 +6 0 0 0 0
  1191 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1192 + -20616 50554 -18177 50554
  1193 +-6
  1194 +6 0 0 0 0
  1195 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1196 + -16677 51454 -16677 53840
  1197 +-6
  1198 +6 0 0 0 0
  1199 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1200 + -23368 52637 -22222 51950 -21077 52637 -22222 53325 -23368 52637
  1201 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1202 + -23368 52637 -22222 51950 -21077 52637 -22222 53325 -23368 52637
  1203 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -22128 51808 n\001
  1204 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -22128 53845 n\001
  1205 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -22222 52756 nr_zu_typ\001
  1206 +-6
  1207 +6 0 0 0 0
  1208 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1209 + -22222 51026 -22222 51950
  1210 +-6
  1211 +6 0 0 0 0
  1212 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 3
  1213 + -22222 53325 -22222 54312 -18071 54312
  1214 +-6
  1215 +6 0 0 0 0
  1216 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 7
  1217 + -7007 50554 -5950 50554 -5950 49437 -8509 49437 -8509 50297 -11810 50297 -11810 50082
  1218 +-6
  1219 +6 0 0 0 0
  1220 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 7
  1221 + -7007 50554 -5927 50554 -5927 51671 -8509 51671 -8509 50610 -11810 50610 -11810 51026
  1222 +-6
  1223 +6 0 0 0 0
  1224 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5833 49736 n\001
  1225 +-6
  1226 +6 0 0 0 0
  1227 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5833 51463 n\001
  1228 +-6
  1229 +6 0 0 0 0
  1230 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -20550 43717 732 425 0 0 0 0
  1231 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -20550 43717 732 425 0 0 0 0
  1232 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -20550 43836 _id_\001
  1233 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1234 + -20810 43906 -20291 43906
  1235 +-6
  1236 +6 0 0 0 0
  1237 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -23609 43836 838 425 0 0 0 0
  1238 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -23609 43836 838 425 0 0 0 0
  1239 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -23609 43954 vk_nr\001
  1240 +-6
  1241 +6 0 0 0 0
  1242 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -19476 41615 1263 425 0 0 0 0
  1243 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -19476 41615 1263 425 0 0 0 0
  1244 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19476 41733 kred_konto\001
  1245 +-6
  1246 +6 0 0 0 0
  1247 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -19287 42678 1216 425 0 0 0 0
  1248 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -19287 42678 1216 425 0 0 0 0
  1249 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19287 42796 deb_konto\001
  1250 +-6
  1251 +6 0 0 0 0
  1252 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -24649 41591 1169 425 0 0 0 0
  1253 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -24649 41591 1169 425 0 0 0 0
  1254 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -24649 41710 id_person\001
  1255 +-6
  1256 +6 0 0 0 0
  1257 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -24791 42773 1003 425 0 0 0 0
  1258 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -24791 42773 1003 425 0 0 0 0
  1259 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -24791 42891 id_firma\001
  1260 +-6
  1261 +6 0 0 0 0
  1262 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1263 + -23822 41892 -20935 42996
  1264 +-6
  1265 +6 0 0 0 0
  1266 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1267 + -23787 42773 -22222 42051
  1268 +-6
  1269 +6 0 0 0 0
  1270 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1271 + -23016 43535 -22222 42051
  1272 +-6
  1273 +6 0 0 0 0
  1274 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1275 + -21068 43417 -22222 42051
  1276 +-6
  1277 +6 0 0 0 0
  1278 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1279 + -20503 42678 -23510 42523
  1280 +-6
  1281 +6 0 0 0 0
  1282 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1283 + -20739 41615 -22222 42996
  1284 +-6
  1285 +6 0 0 0 0
  1286 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1287 + -23510 42051 -20935 42051 -20935 42996 -23510 42996 -23510 42051
  1288 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1289 + -23510 42051 -20935 42051 -20935 42996 -23510 42996 -23510 42051
  1290 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -22222 42642 verk\303\244ufer\001
  1291 +-6
  1292 +6 0 0 0 0
  1293 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -13483 40458 732 425 0 0 0 0
  1294 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -13483 40458 732 425 0 0 0 0
  1295 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -13483 40576 _id_\001
  1296 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1297 + -13743 40647 -13223 40647
  1298 +-6
  1299 +6 0 0 0 0
  1300 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -15527 43694 1287 425 0 0 0 0
  1301 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -15527 43694 1287 425 0 0 0 0
  1302 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15527 43812 id_benutzer\001
  1303 +-6
  1304 +6 0 0 0 0
  1305 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -15881 42489 1263 425 0 0 0 0
  1306 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -15881 42489 1263 425 0 0 0 0
  1307 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15881 42607 kred_konto\001
  1308 +-6
  1309 +6 0 0 0 0
  1310 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -15527 41190 1216 425 0 0 0 0
  1311 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -15527 41190 1216 425 0 0 0 0
  1312 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15527 41308 deb_konto\001
  1313 +-6
  1314 +6 0 0 0 0
  1315 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -11948 41214 850 425 0 0 0 0
  1316 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -11948 41214 850 425 0 0 0 0
  1317 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -11948 41332 an_nr\001
  1318 +-6
  1319 +6 0 0 0 0
  1320 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1321 + -13483 40883 -13129 42996
  1322 +-6
  1323 +6 0 0 0 0
  1324 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1325 + -11948 41639 -13129 42996
  1326 +-6
  1327 +6 0 0 0 0
  1328 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1329 + -14666 41491 -13129 42996
  1330 +-6
  1331 +6 0 0 0 0
  1332 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1333 + -14617 42489 -14310 42523
  1334 +-6
  1335 +6 0 0 0 0
  1336 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1337 + -14616 43393 -13129 42051
  1338 +-6
  1339 +6 0 0 0 0
  1340 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1341 + -14310 42051 -11948 42051 -11948 42996 -14310 42996 -14310 42051
  1342 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1343 + -14310 42051 -11948 42051 -11948 42996 -14310 42996 -14310 42051
  1344 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -13129 42642 anbieter\001
  1345 +-6
  1346 +6 0 0 0 0
  1347 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -5513 40259 732 425 0 0 0 0
  1348 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -5513 40259 732 425 0 0 0 0
  1349 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -5513 40377 _id_\001
  1350 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1351 + -5773 40448 -5253 40448
  1352 +-6
  1353 +6 0 0 0 0
  1354 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -3730 43637 1287 425 0 0 0 0
  1355 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -3730 43637 1287 425 0 0 0 0
  1356 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3730 43755 id_benutzer\001
  1357 +-6
  1358 +6 0 0 0 0
  1359 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -3281 42456 1263 425 0 0 0 0
  1360 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -3281 42456 1263 425 0 0 0 0
  1361 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3281 42574 kred_konto\001
  1362 +-6
  1363 +6 0 0 0 0
  1364 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -3801 41251 1216 425 0 0 0 0
  1365 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -3801 41251 1216 425 0 0 0 0
  1366 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3801 41369 deb_konto\001
  1367 +-6
  1368 +6 0 0 0 0
  1369 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -6860 41228 850 425 0 0 0 0
  1370 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -6860 41228 850 425 0 0 0 0
  1371 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -6860 41346 kd_nr\001
  1372 +-6
  1373 +6 0 0 0 0
  1374 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1375 + -6860 41653 -5915 42996
  1376 +-6
  1377 +6 0 0 0 0
  1378 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1379 + -5513 40684 -5915 42996
  1380 +-6
  1381 +6 0 0 0 0
  1382 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1383 + -4661 41552 -6777 42996
  1384 +-6
  1385 +6 0 0 0 0
  1386 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1387 + -4545 42456 -5053 42523
  1388 +-6
  1389 +6 0 0 0 0
  1390 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1391 + -5017 43637 -5915 42051
  1392 +-6
  1393 +6 0 0 0 0
  1394 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1395 + -6777 42051 -5053 42051 -5053 42996 -6777 42996 -6777 42051
  1396 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1397 + -6777 42051 -5053 42051 -5053 42996 -6777 42996 -6777 42051
  1398 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -5915 42642 kunde\001
  1399 +-6
  1400 +6 0 0 0 0
  1401 +2 1 3 1 0 0 0 0 -1 31.496063 0 0 0 0 0 4
  1402 + -24153 38683 -17486 38683 -17486 47251 -2476 47251
  1403 +-6
  1404 +6 0 0 0 0
  1405 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  1406 + -2681 45706 -792 45706 -432 45914 -432 46748 -2681 46748 -2681 45706
  1407 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1408 + -2681 45706 -792 45706 -432 45914 -432 46748 -2681 46748 -2681 45706
  1409 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1410 + -792 45706 -792 45914
  1411 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1412 + -792 45914 -432 45914
  1413 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1557 46133 Benutzer-\001
  1414 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1557 46463 verwaltung\001
  1415 +-6
  1416 +6 0 0 0 0
  1417 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -14021 52778 1074 425 0 0 0 0
  1418 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -14021 52778 1074 425 0 0 0 0
  1419 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14021 52896 b_kto_nr\001
  1420 +-6
  1421 +6 0 0 0 0
  1422 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -9946 53912 1015 425 0 0 0 0
  1423 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -9946 53912 1015 425 0 0 0 0
  1424 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9946 54030 b_name\001
  1425 +-6
  1426 +6 0 0 0 0
  1427 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -13749 51455 850 425 0 0 0 0
  1428 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -13749 51455 850 425 0 0 0 0
  1429 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -13749 51574 name\001
  1430 +-6
  1431 +6 0 0 0 0
  1432 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -10123 49613 673 425 0 0 0 0
  1433 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -10123 49613 673 425 0 0 0 0
  1434 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -10123 49731 blz\001
  1435 +-6
  1436 +6 0 0 0 0
  1437 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -9710 51550 968 425 0 0 0 0
  1438 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -9710 51550 968 425 0 0 0 0
  1439 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9710 51668 summe\001
  1440 +-6
  1441 +6 0 0 0 0
  1442 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -13808 49707 909 425 0 0 0 0
  1443 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -13808 49707 909 425 0 0 0 0
  1444 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -13808 49825 kto_nr\001
  1445 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1446 + -14245 49896 -13371 49896
  1447 +-6
  1448 +6 0 0 0 0
  1449 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -9497 52755 1157 425 0 0 0 0
  1450 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -9497 52755 1157 425 0 0 0 0
  1451 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9497 52873 konto_typ\001
  1452 +-6
  1453 +6 0 0 0 0
  1454 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -9745 48550 1169 425 0 0 0 0
  1455 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -9745 48550 1169 425 0 0 0 0
  1456 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9745 48668 saldo_soll\001
  1457 +-6
  1458 +6 0 0 0 0
  1459 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -14139 48597 1358 425 0 0 0 0
  1460 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -14139 48597 1358 425 0 0 0 0
  1461 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14139 48715 saldo_haben\001
  1462 +-6
  1463 +6 0 0 0 0
  1464 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1465 + -13178 48898 -11810 51026
  1466 +-6
  1467 +6 0 0 0 0
  1468 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1469 + -13165 50008 -10948 51026
  1470 +-6
  1471 +6 0 0 0 0
  1472 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1473 + -13148 51154 -11810 50082
  1474 +-6
  1475 +6 0 0 0 0
  1476 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1477 + -13261 52477 -11810 50082
  1478 +-6
  1479 +6 0 0 0 0
  1480 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1481 + -10664 53611 -11810 50082
  1482 +-6
  1483 +6 0 0 0 0
  1484 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1485 + -10572 48850 -11810 51026
  1486 +-6
  1487 +6 0 0 0 0
  1488 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1489 + -10316 52454 -11810 50082
  1490 +-6
  1491 +6 0 0 0 0
  1492 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1493 + -10395 51249 -11810 50082
  1494 +-6
  1495 +6 0 0 0 0
  1496 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -17212 48526 1086 425 0 0 0 0
  1497 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -17212 48526 1086 425 0 0 0 0
  1498 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -17212 48644 konto_nr\001
  1499 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1500 + -17826 48715 -16598 48715
  1501 +-6
  1502 +6 0 0 0 0
  1503 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -19373 49802 814 425 0 0 0 0
  1504 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -19373 49802 814 425 0 0 0 0
  1505 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19373 49920 used\001
  1506 +-6
  1507 +6 0 0 0 0
  1508 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -19740 48715 1157 425 0 0 0 0
  1509 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -19740 48715 1157 425 0 0 0 0
  1510 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19740 48833 konto_typ\001
  1511 +-6
  1512 +6 0 0 0 0
  1513 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1514 + -18559 49802 -15177 51454
  1515 +-6
  1516 +6 0 0 0 0
  1517 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1518 + -18582 48715 -15177 51454
  1519 +-6
  1520 +6 0 0 0 0
  1521 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1522 + -17212 48951 -15177 51454
  1523 +-6
  1524 +6 0 0 0 0
  1525 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1526 + -18177 49654 -15177 49654 -15177 51454 -18177 51454 -18177 49654
  1527 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1528 + -18177 49654 -15177 49654 -15177 51454 -18177 51454 -18177 49654
  1529 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1530 + -18177 50554 -16677 49654 -15177 50554 -16677 51454 -18177 50554
  1531 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1532 + -18177 50554 -16677 49654 -15177 50554 -16677 51454 -18177 50554
  1533 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -16677 50672 used_konten\001
  1534 +-6
  1535 +6 0 0 0 0
  1536 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -4678 48125 1417 425 0 0 0 0
  1537 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -4678 48125 1417 425 0 0 0 0
  1538 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -4678 48243 buchungstext\001
  1539 +-6
  1540 +6 0 0 0 0
  1541 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -3403 50274 1015 425 0 0 0 0
  1542 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -3403 50274 1015 425 0 0 0 0
  1543 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3403 50392 kto_soll\001
  1544 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1545 + -3946 50463 -2859 50463
  1546 +-6
  1547 +6 0 0 0 0
  1548 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -5340 52282 874 425 0 0 0 0
  1549 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -5340 52282 874 425 0 0 0 0
  1550 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -5340 52400 be_nr\001
  1551 +-6
  1552 +6 0 0 0 0
  1553 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -3308 52825 897 425 0 0 0 0
  1554 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3308 52825 897 425 0 0 0 0
  1555 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3308 52944 berag\001
  1556 +-6
  1557 +6 0 0 0 0
  1558 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -3355 49235 1204 425 0 0 0 0
  1559 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -3355 49235 1204 425 0 0 0 0
  1560 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3355 49353 kto_haben\001
  1561 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1562 + -4088 49424 -2623 49424
  1563 +-6
  1564 +6 0 0 0 0
  1565 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -3249 51408 1027 425 0 0 0 0
  1566 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -3249 51408 1027 425 0 0 0 0
  1567 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -3249 51526 bu_date\001
  1568 +-6
  1569 +6 0 0 0 0
  1570 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1571 + -4678 48550 -5932 51199
  1572 +-6
  1573 +6 0 0 0 0
  1574 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1575 + -4207 49535 -5932 51199
  1576 +-6
  1577 +6 0 0 0 0
  1578 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1579 + -4418 50274 -7007 50554
  1580 +-6
  1581 +6 0 0 0 0
  1582 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1583 + -4277 51408 -5932 49909
  1584 +-6
  1585 +6 0 0 0 0
  1586 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1587 + -3943 52525 -5932 49909
  1588 +-6
  1589 +6 0 0 0 0
  1590 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1591 + -5340 51857 -5932 49909
  1592 +-6
  1593 +6 0 0 0 0
  1594 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1595 + -7007 49909 -4857 49909 -4857 51199 -7007 51199 -7007 49909
  1596 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1597 + -7007 49909 -4857 49909 -4857 51199 -7007 51199 -7007 49909
  1598 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1599 + -7007 50554 -5932 49909 -4857 50554 -5932 51199 -7007 50554
  1600 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1601 + -7007 50554 -5932 49909 -4857 50554 -5932 51199 -7007 50554
  1602 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -5932 50672 buchung\001
  1603 +-6
  1604 +6 0 0 0 0
  1605 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -24238 49306 1452 425 0 0 0 0
  1606 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -24238 49306 1452 425 0 0 0 0
  1607 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -24238 49424 beschreibung\001
  1608 +-6
  1609 +6 0 0 0 0
  1610 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -24959 50440 850 425 0 0 0 0
  1611 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -24959 50440 850 425 0 0 0 0
  1612 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -24959 50558 name\001
  1613 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1614 + -25337 50629 -24581 50629
  1615 +-6
  1616 +6 0 0 0 0
  1617 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -24628 51715 1157 425 0 0 0 0
  1618 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -24628 51715 1157 425 0 0 0 0
  1619 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -24628 51833 konto_typ\001
  1620 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1621 + -25313 51904 -23943 51904
  1622 +-6
  1623 +6 0 0 0 0
  1624 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -17565 55637 732 425 0 0 0 0
  1625 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -17565 55637 732 425 0 0 0 0
  1626 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -17565 55755 _id_\001
  1627 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1628 + -17825 55825 -17305 55825
  1629 +-6
  1630 +6 0 0 0 0
  1631 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -14577 55353 933 425 0 0 0 0
  1632 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -14577 55353 933 425 0 0 0 0
  1633 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14577 55471 nr_von\001
  1634 +-6
  1635 +6 0 0 0 0
  1636 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -13785 54314 1157 425 0 0 0 0
  1637 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -13785 54314 1157 425 0 0 0 0
  1638 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -13785 54432 konto_typ\001
  1639 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1640 + -14471 54503 -13100 54503
  1641 +-6
  1642 +6 0 0 0 0
  1643 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -15911 56062 897 425 0 0 0 0
  1644 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -15911 56062 897 425 0 0 0 0
  1645 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15911 56180 nr_bis\001
  1646 +-6
  1647 +6 0 0 0 0
  1648 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -19171 55140 850 425 0 0 0 0
  1649 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -19171 55140 850 425 0 0 0 0
  1650 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19171 55259 name\001
  1651 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1652 + -19549 55329 -18793 55329
  1653 +-6
  1654 +6 0 0 0 0
  1655 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1656 + -23211 49606 -22222 51026
  1657 +-6
  1658 +6 0 0 0 0
  1659 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1660 + -24108 50440 -20616 50554
  1661 +-6
  1662 +6 0 0 0 0
  1663 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1664 + -23810 51414 -22222 50082
  1665 +-6
  1666 +6 0 0 0 0
  1667 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1668 + -23828 50082 -20616 50082 -20616 51026 -23828 51026 -23828 50082
  1669 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1670 + -23828 50082 -20616 50082 -20616 51026 -23828 51026 -23828 50082
  1671 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -22222 50672 konten_typen\001
  1672 +-6
  1673 +6 0 0 0 0
  1674 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1675 + -18570 54839 -16677 53840
  1676 +-6
  1677 +6 0 0 0 0
  1678 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1679 + -17565 55211 -16677 53840
  1680 +-6
  1681 +6 0 0 0 0
  1682 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1683 + -15911 55637 -16677 53840
  1684 +-6
  1685 +6 0 0 0 0
  1686 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1687 + -15237 55052 -16677 53840
  1688 +-6
  1689 +6 0 0 0 0
  1690 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1691 + -14943 54314 -18071 54785
  1692 +-6
  1693 +6 0 0 0 0
  1694 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1695 + -18071 53840 -15284 53840 -15284 54785 -18071 54785 -18071 53840
  1696 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1697 + -18071 53840 -15284 53840 -15284 54785 -18071 54785 -18071 53840
  1698 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -16677 54430 kontenplan\001
  1699 +-6
  1700 +6 0 0 0 0
  1701 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1702 + -11810 51026 -11810 57625
  1703 +-6
  1704 +6 0 0 0 0
  1705 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1706 + -21242 59971 -20521 59539 -19801 59971 -20521 60403 -21242 59971
  1707 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1708 + -21242 59971 -20521 59539 -19801 59971 -20521 60403 -21242 59971
  1709 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20427 59397 1\001
  1710 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20427 60923 1\001
  1711 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20521 60089 aus\001
  1712 +-6
  1713 +6 0 0 0 0
  1714 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1715 + -21159 63229 -20521 62846 -19884 63229 -20521 63611 -21159 63229
  1716 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1717 + -21159 63229 -20521 62846 -19884 63229 -20521 63611 -21159 63229
  1718 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20427 62704 n\001
  1719 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20427 64131 m\001
  1720 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -20521 63347 ist\001
  1721 +-6
  1722 +6 0 0 0 0
  1723 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1724 + -20521 58764 -20521 59539
  1725 +-6
  1726 +6 0 0 0 0
  1727 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1728 + -20521 60403 -20521 61162
  1729 +-6
  1730 +6 0 0 0 0
  1731 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1732 + -20521 62107 -20521 62846
  1733 +-6
  1734 +6 0 0 0 0
  1735 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1736 + -20521 63611 -20521 65586
  1737 +-6
  1738 +6 0 0 0 0
  1739 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1740 + -17908 61634 -16963 61067 -16018 61634 -16963 62201 -17908 61634
  1741 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1742 + -17908 61634 -16963 61067 -16018 61634 -16963 62201 -17908 61634
  1743 +4 2 0 0 0 16 22.762205 0.0 6 0.0 0.0 -18050 61492 n\001
  1744 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -15876 61492 m\001
  1745 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -16963 61752 enth\303\244lt\001
  1746 +-6
  1747 +6 0 0 0 0
  1748 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1749 + -18809 61634 -17908 61634
  1750 +-6
  1751 +6 0 0 0 0
  1752 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1753 + -16018 61634 -13416 61634
  1754 +-6
  1755 +6 0 0 0 0
  1756 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1757 + -12920 58292 -11810 57625 -10700 58292 -11810 58958 -12920 58292
  1758 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1759 + -12920 58292 -11810 57625 -10700 58292 -11810 58958 -12920 58292
  1760 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -11716 57484 2\001
  1761 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -11716 59477 n\001
  1762 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -11810 58410 aufw/ertr\001
  1763 +-6
  1764 +6 0 0 0 0
  1765 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1766 + -11810 58958 -11810 61162
  1767 +-6
  1768 +6 0 0 0 0
  1769 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 5
  1770 + -6865 61634 -5932 61074 -4999 61634 -5932 62194 -6865 61634
  1771 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1772 + -6865 61634 -5932 61074 -4999 61634 -5932 62194 -6865 61634
  1773 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5837 60933 0,1\001
  1774 +4 0 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5837 62714 1\001
  1775 +4 1 0 0 0 16 22.762205 0.0 6 0.0 0.0 -5932 61752 parent\001
  1776 +-6
  1777 +6 0 0 0 0
  1778 +2 1 3 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1779 + -24148 56884 -2416 56884
  1780 +-6
  1781 +6 0 0 0 0
  1782 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  1783 + -6643 72734 -1480 72734 -497 73340 -497 75761 -6643 75761 -6643 72734
  1784 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1785 + -6643 72734 -1480 72734 -497 73340 -497 75761 -6643 75761 -6643 72734
  1786 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1787 + -1480 72734 -1480 73340
  1788 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1789 + -1480 73340 -497 73340
  1790 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 73161 WEB-Shop System ERM\001
  1791 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 73492 Seite 2\001
  1792 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 73822 \001
  1793 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 74153 Autor: Georg Steffers\001
  1794 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 74484 E-Mail: georg@steffers.org\001
  1795 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 74815 \001
  1796 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 75145 Copyright (C)2004 Georg Steffers\001
  1797 +4 0 0 0 0 14 19.916929 0.0 6 0.0 0.0 -6028 75476 erzeugt mit DIA V0.93\001
  1798 +-6
  1799 +6 0 0 0 0
  1800 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1801 + -10599 49913 -12672 51026
  1802 +-6
  1803 +6 0 0 0 0
  1804 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1805 + -12672 50082 -10948 50082 -10948 51026 -12672 51026 -12672 50082
  1806 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1807 + -12672 50082 -10948 50082 -10948 51026 -12672 51026 -12672 50082
  1808 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -11810 50672 konto\001
  1809 +-6
  1810 +6 0 0 0 0
  1811 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1812 + -11810 61162 -11810 61452 -7749 61452 -7749 60484 -5932 60484 -5932 61074
  1813 +-6
  1814 +6 0 0 0 0
  1815 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1816 + -11810 62107 -11810 61724 -7761 61724 -7761 62846 -5932 62846 -5932 62194
  1817 +-6
  1818 +6 0 0 0 0
  1819 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  1820 + -1813 55275 -668 55275 -450 55484 -450 56318 -1813 56318 -1813 55275
  1821 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1822 + -1813 55275 -668 55275 -450 55484 -450 56318 -1813 56318 -1813 55275
  1823 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1824 + -668 55275 -668 55484
  1825 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1826 + -668 55484 -450 55484
  1827 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1131 55702 FiBu\001
  1828 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1131 56033 Daten\001
  1829 +-6
  1830 +6 0 0 0 0
  1831 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  1832 + -3224 64641 -889 64641 -444 64850 -444 65684 -3224 65684 -3224 64641
  1833 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  1834 + -3224 64641 -889 64641 -444 64850 -444 65684 -3224 65684 -3224 64641
  1835 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1836 + -889 64641 -889 64850
  1837 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1838 + -889 64850 -444 64850
  1839 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1834 65068 Warengruppen/\001
  1840 +4 1 0 0 0 14 19.916929 0.0 6 0.0 0.0 -1834 65399 Produktdaten\001
  1841 +-6
  1842 +6 0 0 0 0
  1843 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -15146 63968 1476 425 0 0 0 0
  1844 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -15146 63968 1476 425 0 0 0 0
  1845 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -15146 64086 produkt_typen\001
  1846 +-6
  1847 +6 0 0 0 0
  1848 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -13457 59622 1275 425 0 0 0 0
  1849 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -13457 59622 1275 425 0 0 0 0
  1850 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -13457 59740 aufw_konto\001
  1851 +-6
  1852 +6 0 0 0 0
  1853 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -10103 59622 1204 425 0 0 0 0
  1854 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -10103 59622 1204 425 0 0 0 0
  1855 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -10103 59740 ertr_konto\001
  1856 +-6
  1857 +6 0 0 0 0
  1858 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -9702 60637 732 425 0 0 0 0
  1859 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -9702 60637 732 425 0 0 0 0
  1860 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -9702 60755 _id_\001
  1861 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1862 + -9961 60826 -9442 60826
  1863 +-6
  1864 +6 0 0 0 0
  1865 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -12938 64748 1204 425 0 0 0 0
  1866 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -12938 64748 1204 425 0 0 0 0
  1867 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -12938 64866 kurzbesch\001
  1868 +-6
  1869 +6 0 0 0 0
  1870 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -8060 63496 1452 425 0 0 0 0
  1871 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -8060 63496 1452 425 0 0 0 0
  1872 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -8060 63614 beschreibung\001
  1873 +-6
  1874 +6 0 0 0 0
  1875 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -14650 60755 1051 425 0 0 0 0
  1876 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -14650 60755 1051 425 0 0 0 0
  1877 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14650 60874 steuerkl\001
  1878 +-6
  1879 +6 0 0 0 0
  1880 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -14591 62763 1062 425 0 0 0 0
  1881 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -14591 62763 1062 425 0 0 0 0
  1882 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -14591 62881 pic_path\001
  1883 +-6
  1884 +6 0 0 0 0
  1885 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -12099 63188 791 425 0 0 0 0
  1886 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -12099 63188 791 425 0 0 0 0
  1887 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -12099 63307 tiefe\001
  1888 +-6
  1889 +6 0 0 0 0
  1890 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -10871 64039 1122 425 0 0 0 0
  1891 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -10871 64039 1122 425 0 0 0 0
  1892 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -10871 64157 is_parent\001
  1893 +-6
  1894 +6 0 0 0 0
  1895 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -10174 62834 850 425 0 0 0 0
  1896 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -10174 62834 850 425 0 0 0 0
  1897 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -10174 62952 name\001
  1898 +2 1 1 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1899 + -10552 63023 -9796 63023
  1900 +-6
  1901 +6 0 0 0 0
  1902 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1903 + -13907 61056 -11810 62107
  1904 +-6
  1905 +6 0 0 0 0
  1906 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1907 + -13457 60047 -11810 62107
  1908 +-6
  1909 +6 0 0 0 0
  1910 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1911 + -10955 59922 -11810 62107
  1912 +-6
  1913 +6 0 0 0 0
  1914 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1915 + -10219 60938 -11810 62107
  1916 +-6
  1917 +6 0 0 0 0
  1918 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1919 + -13840 62462 -13416 62107
  1920 +-6
  1921 +6 0 0 0 0
  1922 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1923 + -14103 63667 -11810 61162
  1924 +-6
  1925 +6 0 0 0 0
  1926 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1927 + -12099 62763 -11810 61162
  1928 +-6
  1929 +6 0 0 0 0
  1930 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1931 + -10871 63614 -11810 61162
  1932 +-6
  1933 +6 0 0 0 0
  1934 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1935 + -10775 62533 -11810 61162
  1936 +-6
  1937 +6 0 0 0 0
  1938 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1939 + -8060 63070 -10204 62107
  1940 +-6
  1941 +6 0 0 0 0
  1942 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1943 + -13790 64447 -11810 61162
  1944 +-6
  1945 +6 0 0 0 0
  1946 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1947 + -13416 61162 -10204 61162 -10204 62107 -13416 62107 -13416 61162
  1948 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1949 + -13416 61162 -10204 61162 -10204 62107 -13416 62107 -13416 61162
  1950 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -11810 61752 warengruppen\001
  1951 +-6
  1952 +6 0 0 0 0
  1953 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -17704 57992 1169 425 0 0 0 0
  1954 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -17704 57992 1169 425 0 0 0 0
  1955 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -17704 57992 980 330 0 0 0 0
  1956 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -17704 58110 zusatzinfo\001
  1957 +-6
  1958 +6 0 0 0 0
  1959 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1960 + -18873 57992 -21809 58292
  1961 +-6
  1962 +6 0 0 0 0
  1963 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  1964 + -21809 57819 -19234 57819 -19234 58764 -21809 58764 -21809 57819
  1965 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1966 + -21809 57819 -19234 57819 -19234 58764 -21809 58764 -21809 57819
  1967 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  1968 + -21691 57937 -19352 57937 -19352 58646 -21691 58646 -21691 57937
  1969 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -20521 58410 typ_table\001
  1970 +-6
  1971 +6 0 0 0 0
  1972 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -22971 60472 1110 425 0 0 0 0
  1973 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -22971 60472 1110 425 0 0 0 0
  1974 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -22971 60590 typ_table\001
  1975 +-6
  1976 +6 0 0 0 0
  1977 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -23986 61677 1299 425 0 0 0 0
  1978 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -23986 61677 1299 425 0 0 0 0
  1979 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -23986 61795 produkt_typ\001
  1980 +2 1 0 1 0 0 0 0 -1 9.448819 0 0 0 0 0 2
  1981 + -24813 61866 -23159 61866
  1982 +-6
  1983 +6 0 0 0 0
  1984 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -23065 62858 1370 425 0 0 0 0
  1985 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -23065 62858 1370 425 0 0 0 0
  1986 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -23065 62976 bezeichnung\001
  1987 +-6
  1988 +6 0 0 0 0
  1989 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1990 + -22185 60772 -20521 62107
  1991 +-6
  1992 +6 0 0 0 0
  1993 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1994 + -22687 61677 -22234 61634
  1995 +-6
  1996 +6 0 0 0 0
  1997 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  1998 + -22096 62557 -20521 61162
  1999 +-6
  2000 +6 0 0 0 0
  2001 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  2002 + -22234 61162 -18809 61162 -18809 62107 -22234 62107 -22234 61162
  2003 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  2004 + -22234 61162 -18809 61162 -18809 62107 -22234 62107 -22234 61162
  2005 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -20521 61752 produkt_typen\001
  2006 +-6
  2007 +6 0 0 0 0
  2008 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -21927 64736 732 425 0 0 0 0
  2009 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -21927 64736 732 425 0 0 0 0
  2010 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21927 64854 _id_\001
  2011 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2012 + -22187 64925 -21667 64925
  2013 +-6
  2014 +6 0 0 0 0
  2015 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -21549 67641 850 425 0 0 0 0
  2016 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -21549 67641 850 425 0 0 0 0
  2017 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -21549 67759 name\001
  2018 +-6
  2019 +6 0 0 0 0
  2020 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -23486 66791 1204 425 0 0 0 0
  2021 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -23486 66791 1204 425 0 0 0 0
  2022 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -23486 66909 kurzbesch\001
  2023 +-6
  2024 +6 0 0 0 0
  2025 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -17887 65822 1110 425 0 0 0 0
  2026 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -17887 65822 1110 425 0 0 0 0
  2027 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -17887 65940 small_pic\001
  2028 +-6
  2029 +6 0 0 0 0
  2030 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -17828 66909 980 425 0 0 0 0
  2031 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -17828 66909 980 425 0 0 0 0
  2032 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -17828 67027 big_pic\001
  2033 +-6
  2034 +6 0 0 0 0
  2035 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -23521 65657 1452 425 0 0 0 0
  2036 +1 1 0 1 0 -1 0 0 -1 31.496063 1 0.0 -23521 65657 1452 425 0 0 0 0
  2037 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -23521 65775 beschreibung\001
  2038 +-6
  2039 +6 0 0 0 0
  2040 +1 1 0 1 32 32 0 0 20 31.496063 1 0.0 -18513 64783 1476 425 0 0 0 0
  2041 +1 1 1 1 0 -1 0 0 -1 9.448819 1 0.0 -18513 64783 1476 425 0 0 0 0
  2042 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -18513 64901 produkt_typen\001
  2043 +-6
  2044 +6 0 0 0 0
  2045 +1 1 1 1 32 32 0 0 20 9.448819 1 0.0 -20521 68846 838 425 0 0 0 0
  2046 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -20521 68846 838 425 0 0 0 0
  2047 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -20521 68964 preis\001
  2048 +-6
  2049 +6 0 0 0 0
  2050 +1 1 0 1 32 32 0 0 20 9.448819 1 0.0 -19435 67688 862 425 0 0 0 0
  2051 +1 1 0 1 0 -1 0 0 -1 9.448819 1 0.0 -19435 67688 862 425 0 0 0 0
  2052 +4 1 0 0 0 0 22.762205 0.0 6 0.0 0.0 -19435 67807 st\303\274ck\001
  2053 +-6
  2054 +6 0 0 0 0
  2055 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2056 + -21409 65036 -20521 66531
  2057 +-6
  2058 +6 0 0 0 0
  2059 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2060 + -22069 65657 -19447 66059
  2061 +-6
  2062 +6 0 0 0 0
  2063 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2064 + -22281 66791 -20521 65586
  2065 +-6
  2066 +6 0 0 0 0
  2067 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2068 + -21549 67216 -20521 65586
  2069 +-6
  2070 +6 0 0 0 0
  2071 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2072 + -20521 68421 -20521 65586
  2073 +-6
  2074 +6 0 0 0 0
  2075 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2076 + -19435 67263 -20521 65586
  2077 +-6
  2078 +6 0 0 0 0
  2079 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2080 + -18809 66909 -20521 65586
  2081 +-6
  2082 +6 0 0 0 0
  2083 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2084 + -18998 65822 -21596 66059
  2085 +-6
  2086 +6 0 0 0 0
  2087 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2088 + -19557 65083 -20521 66531
  2089 +-6
  2090 +6 0 0 0 0
  2091 +2 3 0 1 32 32 0 -1 20 31.496063 0 0 0 0 0 5
  2092 + -21596 65586 -19447 65586 -19447 66531 -21596 66531 -21596 65586
  2093 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 5
  2094 + -21596 65586 -19447 65586 -19447 66531 -21596 66531 -21596 65586
  2095 +4 1 0 0 0 12 28.452756 0.0 6 0.0 0.0 -20521 66177 produkt\001
  2096 +-6
  2097 +6 0 0 0 0
  2098 +5 1 2 1 0 0 0 0 -1 31.496063 0 1 1 0 0.000000 0.000000 -18634 36581 -19511 37282 -20496 36742
  2099 + 0 0 1.574803 236.220472 236.220472
  2100 +-6
  2101 +6 0 0 0 0
  2102 +5 1 2 1 0 0 0 0 -1 31.496063 0 1 1 0 0.000000 0.000000 -18634 36581 -20560 35274 -22693 36204
  2103 + 0 0 1.574803 236.220472 236.220472
  2104 +-6
  2105 +6 0 0 0 0
  2106 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  2107 + -19655 36581 -17940 36581 -17613 36784 -17613 37600 -19655 37600 -19655 36581
  2108 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  2109 + -19655 36581 -17940 36581 -17613 36784 -17613 37600 -19655 37600 -19655 36581
  2110 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2111 + -17940 36581 -17940 36784
  2112 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2113 + -17940 36784 -17613 36784
  2114 +4 0 0 0 0 12 19.916929 0.0 6 0.0 0.0 -19451 36996 entweder,\001
  2115 +4 0 0 0 0 12 19.916929 0.0 6 0.0 0.0 -19451 37326 oder\001
  2116 +-6
  2117 +6 0 0 0 0
  2118 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  2119 + -15489 26007 -13774 26007 -13448 26211 -13448 27026 -15489 27026 -15489 26007
  2120 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  2121 + -15489 26007 -13774 26007 -13448 26211 -13448 27026 -15489 27026 -15489 26007
  2122 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2123 + -13774 26007 -13774 26211
  2124 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2125 + -13774 26211 -13448 26211
  2126 +4 0 0 0 0 12 19.916929 0.0 6 0.0 0.0 -15285 26422 entweder,\001
  2127 +4 0 0 0 0 12 19.916929 0.0 6 0.0 0.0 -15285 26753 oder\001
  2128 +-6
  2129 +6 0 0 0 0
  2130 +5 1 2 1 0 0 0 0 -1 31.496063 0 1 1 0 0.000000 0.000000 -18648 39769 -19480 40525 -20496 40048
  2131 + 0 0 1.574803 236.220472 236.220472
  2132 +-6
  2133 +6 0 0 0 0
  2134 +5 1 2 1 0 0 0 0 -1 31.496063 0 1 1 0 0.000000 0.000000 -18648 39769 -20599 38519 -22693 39509
  2135 + 0 0 1.574803 236.220472 236.220472
  2136 +-6
  2137 +6 0 0 0 0
  2138 +2 3 0 0 32 32 0 0 20 31.496063 0 0 0 0 0 6
  2139 + -19669 39769 -17954 39769 -17628 39973 -17628 40789 -19669 40789 -19669 39769
  2140 +2 3 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 6
  2141 + -19669 39769 -17954 39769 -17628 39973 -17628 40789 -19669 40789 -19669 39769
  2142 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2143 + -17954 39769 -17954 39973
  2144 +2 1 0 1 0 0 0 0 -1 31.496063 0 0 0 0 0 2
  2145 + -17954 39973 -17628 39973
  2146 +4 0 0 0 0 12 19.916929 0.0 6 0.0 0.0 -19465 40185 entweder,\001
  2147 +4 0 0 0 0 12 19.916929 0.0 6 0.0 0.0 -19465 40515 oder\001
  2148 +-6
... ...
This diff could not be displayed because it is too large.
No preview for this file type
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
No preview for this file type
  1 +\documentclass[a4paper,12pt]{article}
  2 +\usepackage{german,color}
  3 +\usepackage[latin1]{inputenc}
  4 +\pagestyle{empty}
  5 +%\evensidemargin 0cm
  6 +%\oddsidemargin 0cm
  7 +\textheight 25.5cm
  8 +\textwidth 15.9cm
  9 +\voffset -2cm
  10 +\hoffset -2cm
  11 +\renewcommand\floatpagefraction{.9}
  12 +\renewcommand\topfraction{.9}
  13 +\renewcommand\bottomfraction{.9}
  14 +\renewcommand\textfraction{.1}
  15 +\setcounter{totalnumber}{50}
  16 +\setcounter{topnumber}{50}
  17 +\setcounter{bottomnumber}{50}
  18 +
  19 +\begin{document}
  20 +% \appendix
  21 +
  22 + \begin{center}
  23 + \section*{\Large {\sf\bfseries Lebenslauf}\\ \large{\sf Georg Steffers\\}}
  24 + \end{center}
  25 +
  26 +%\hspace{3cm}
  27 +%\vspace{-1.5cm}
  28 +\small
  29 +\newlength{\lwidth}
  30 +\newlength{\schulw}
  31 +\newlength{\datew}
  32 +\newlength{\ortw}
  33 +\newlength{\abschlussw}
  34 +\settowidth{\schulw}{Hans-B"ockler-Schule}
  35 +%\settowidth{\schulw}{Privatbrauerei Rolinck}
  36 +\settowidth{\ortw}{Rothenburg/}
  37 +\settowidth{\datew}{00.00.0000 - 00.00.0000}
  38 +%\settowidth{\abschlussw}{Grundschulabschlu"s}
  39 +
  40 +\frame{\makebox[.96\linewidth][c]{\colorbox[gray]{.8}
  41 + {\begin{minipage}{.948\linewidth}
  42 + {\small\sf\bfseries Pers"onliche Daten}
  43 + \end{minipage}}}}
  44 +
  45 +\frame{\makebox[.96\linewidth][c]
  46 + {\begin{minipage}{.94\linewidth}
  47 + \vspace{5pt}
  48 + \hbox{
  49 + \begin{minipage}[t][][c]{.35\linewidth}
  50 + Steffers Georg\\
  51 + Warendorfer Str. 75\\
  52 + 48145 M"unster
  53 + \end{minipage}
  54 + % linewidth: \number\linewidth\\
  55 + % textwidth: \number\textwidth\\
  56 +
  57 + \begin{minipage}[t][][t]{.60\linewidth}
  58 + \settowidth{\lwidth}{Staatsangeh"origkeit: }
  59 + \begin{tabular}[t]{p{\lwidth}l}
  60 + Geburtsdatum:&15. Dezember 1973\\
  61 + Geburtsort:&48607 Ochtrup\\
  62 + Familienstand:&ledig\\
  63 + % Konfession:&rk\\
  64 + Staatsangehörigkeit:&deutsch\\
  65 + F"uhrerschein:&Klasse 3,1a
  66 + \end{tabular}
  67 + \end{minipage}}
  68 + %Eltern&&Michael Mustermann, Psychiater\\
  69 + %&&Michaela Mustermann, geb. Musterfrau, Musterberuf\\
  70 + \vspace{5pt}
  71 + \end{minipage}}}
  72 +\vfill
  73 +\frame{\makebox[.96\linewidth][c]{\colorbox[gray]{.8}
  74 + {\begin{minipage}{.948\linewidth}
  75 + {\small\sf\bfseries Schulbildung}
  76 + \end{minipage}}}}
  77 +
  78 +\frame{\makebox[.96\linewidth][c]
  79 + {\begin{minipage}{.94\linewidth}
  80 + \setlength{\abschlussw}{\linewidth}
  81 + \addtolength{\abschlussw}{-\schulw}
  82 + \addtolength{\abschlussw}{-\ortw}
  83 + \addtolength{\abschlussw}{-\datew}
  84 + \addtolength{\abschlussw}{-8\tabcolsep}
  85 + \vspace{5pt}
  86 + \begin{tabular}[t]
  87 + {p{\schulw}p{\ortw}p{\datew}p{\abschlussw}}
  88 + Mariengrundschule&Ochtrup&
  89 + 01.08.1980 - 27.06.1984&
  90 + Grundschulabschlu"s\\
  91 + Gymnasium&Ochtrup&
  92 + 01.08.1984 - 30.11.1985&\\
  93 + Hauptschule&Ochtrup&
  94 + 01.12.1985 - 01.06.1990&
  95 + Fachoberschulreife\\
  96 + Hans-B"ockler-Schule&M"unster&
  97 + 01.08.1990 - 30.06.1993&
  98 + Fachhochschulreife
  99 + \end{tabular}
  100 + \vspace{5pt}
  101 + \end{minipage}}}
  102 +\vfill
  103 +\frame{\makebox[.96\linewidth][c]{\colorbox[gray]{.8}
  104 + {\begin{minipage}{.948\linewidth}
  105 + {\small\sf\bfseries Ausbildung/Studium}
  106 + \end{minipage}}}}
  107 +
  108 +\frame{\makebox[.96\linewidth][c]
  109 + {\begin{minipage}{.94\linewidth}
  110 + \setlength{\abschlussw}{\linewidth}
  111 + \addtolength{\abschlussw}{-\schulw}
  112 + \addtolength{\abschlussw}{-\ortw}
  113 + \addtolength{\abschlussw}{-\datew}
  114 + \addtolength{\abschlussw}{-8\tabcolsep}
  115 + \vspace{5pt}
  116 + \begin{tabular}[t]
  117 + {p{\schulw}p{\ortw}p{\datew}p{\abschlussw}}
  118 + BIB&Bergisch Gladbach&
  119 + 04.10.1995 - 30.09.1997&
  120 + Stattl. gepr. Informatik\-assistent Softwaretechnologie\\
  121 + Fernuniversit"at&Hagen&
  122 + seit 01.10.2002&
  123 + \end{tabular}
  124 + \vspace{5pt}
  125 + \end{minipage}}}
  126 +\vfill
  127 +\frame{\makebox[.96\linewidth][c]{\colorbox[gray]{.8}
  128 + {\begin{minipage}{.948\linewidth}
  129 + {\small\sf\bfseries Wehr-/Zivildienst}
  130 + \end{minipage}}}}
  131 +
  132 +\frame{\makebox[.96\linewidth][c]
  133 + {\begin{minipage}{.94\linewidth}
  134 + \setlength{\abschlussw}{\linewidth}
  135 + \addtolength{\abschlussw}{-\schulw}
  136 + \addtolength{\abschlussw}{-\ortw}
  137 + \addtolength{\abschlussw}{-\datew}
  138 + \addtolength{\abschlussw}{-8\tabcolsep}
  139 + \vspace{5pt}
  140 + \begin{tabular}[t]
  141 + {p{\schulw}p{\ortw}p{\datew}p{\abschlussw}}
  142 + Heeresflieger&Rothenburg/ W"umme&
  143 + 01.07.1993 - 15.12.1993&Wehrdienst\\
  144 + Pius Hospital&Ochtrup&
  145 + 16.12.1993 - 30.09.1994&Zivildienst
  146 + \end{tabular}
  147 + \vspace{5pt}
  148 + \end{minipage}}}
  149 +\vfill
  150 +\frame{\makebox[.96\linewidth][c]{\colorbox[gray]{.8}
  151 + {\begin{minipage}{.948\linewidth}
  152 + {\small\sf\bfseries Arbeitsverh"altnisse}
  153 + \end{minipage}}}}
  154 +
  155 +\frame{\makebox[.96\linewidth][c]
  156 + {\begin{minipage}{.94\linewidth}
  157 + \setlength{\abschlussw}{\linewidth}
  158 + \addtolength{\abschlussw}{-\schulw}
  159 + \addtolength{\abschlussw}{-\ortw}
  160 + \addtolength{\abschlussw}{-\datew}
  161 + \addtolength{\abschlussw}{-8\tabcolsep}
  162 + \vspace{5pt}
  163 + \begin{tabular}[t]
  164 + {p{\schulw}p{\ortw}p{\datew}p{\abschlussw}}
  165 + IKK LV-WL&M"unster&
  166 + 06.04.1998 - 30.11.1998&
  167 + Spezielle Datenbankabfragen
  168 + die die eingesetzte Software
  169 + nicht leisten konnte.\\
  170 + Privatbrauerei Rolinck&Steinfurt&
  171 + 01.12.1998 - 30.04.1999&
  172 + Systemoperating\\
  173 + WWU - Institut f"ur Geophysik&M"unster&
  174 + 25.05.1999 - 31.05.2000&
  175 + Systemadministration\\
  176 + Deltacity.NET&Emsdetten&
  177 + 01.06.2000 - 30.11.2001&
  178 + E-Commerce und Webanwendungen entwickelt.\\
  179 + Gamigo AG&Rheine&
  180 + 01.12.2001 - 30.04.2002&
  181 + Webanwendungen entwickelt.\\
  182 + WWU - ZIV&M"unster&
  183 + seit Mitte 2003&
  184 + Portieren einer \mbox{AutoCAD} Application von AIX
  185 + (\mbox{AutoCAD V12}) auf Windows (erst \mbox{AutoCAD V14}
  186 + dann \mbox{AutoCAD 2004}).
  187 + \end{tabular}
  188 + \vspace{5pt}
  189 + \end{minipage}}}
  190 +%\vfill
  191 +%\begin{flushright}bitte wenden\end{flushright}
  192 +\newpage
  193 +\frame{\makebox[.96\linewidth][c]{\colorbox[gray]{.8}
  194 + {\begin{minipage}{.948\linewidth}
  195 + {\small\sf\bfseries Kenntnisse}
  196 + \end{minipage}}}}
  197 +
  198 +\frame{\makebox[.96\linewidth][c]
  199 + {\begin{minipage}{.94\linewidth}
  200 + \vspace{5pt}
  201 + \vbox{
  202 + \begin{minipage}[t][\height][c]{.5\linewidth}\begin{center}
  203 + \vbox{\frame{\makebox[.96\linewidth][c]{
  204 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  205 + {\small\sf Betriebssysteme}
  206 + \end{minipage}}}
  207 + \frame{\makebox[.96\linewidth][c]
  208 + {\begin{minipage}[t]{.94\linewidth}
  209 + \vspace{5pt}
  210 + \vbox{\makebox[.96\linewidth][c]
  211 + {\begin{minipage}[t][][c]{.44\linewidth}
  212 + Linux
  213 + \end{minipage}
  214 + \begin{minipage}[t][][c]{.44\linewidth}
  215 + \begin{tabular}[t]{lr}
  216 + Installation&1\\
  217 + Administration&2\\
  218 + Scriptsprachen&1
  219 + \end{tabular}
  220 + \end{minipage}}}
  221 + \vspace{2pt}
  222 + \vbox{\makebox[.96\linewidth][c]
  223 + {\begin{minipage}[t][][c]{.44\linewidth}
  224 + Windows (NT/2000/XP/98)
  225 + \end{minipage}
  226 + \begin{minipage}[t][][c]{.44\linewidth}
  227 + \begin{tabular}[t]{lr}
  228 + Installation&2\\
  229 + Administration&3\\
  230 + Anwenden&3
  231 + \end{tabular}
  232 + \end{minipage}}}
  233 + \vspace{5pt}
  234 + \end{minipage}}}}
  235 + \vspace{5pt}
  236 + \vbox{\frame{\makebox[.96\linewidth][c]{
  237 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  238 + {\small\sf APIs/Libs}
  239 + \end{minipage}}}
  240 + \frame{\makebox[.96\linewidth][c]
  241 + {\begin{minipage}[t]{.94\linewidth}
  242 + \vspace{5pt}
  243 + \vbox{\makebox[.96\linewidth][c]
  244 + {\begin{tabular*}{.88\linewidth}[t]
  245 + {@{\extracolsep\fill}lr}
  246 + XWin-API&3\\
  247 + Win32-API&4\\
  248 + GTK&3\\
  249 + BSD Socket Layer&3\\
  250 + JDBC/ODBC&3\\
  251 + Servlets/JSP&4\\
  252 + OpenGL&(vermutlich) 3\\
  253 + Linux System&3
  254 + \end{tabular*}}}
  255 + \vspace{5pt}
  256 + \end{minipage}}}}
  257 + \vspace{5pt}
  258 + \vbox{\frame{\makebox[.96\linewidth][c]{
  259 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  260 + {\small\sf Software}
  261 + \end{minipage}}}
  262 + \frame{\makebox[.96\linewidth][c]
  263 + {\begin{minipage}[t]{.94\linewidth}
  264 + \vspace{5pt}
  265 + \vbox{\makebox[.96\linewidth][c]
  266 + {\begin{tabular*}{.88\linewidth}[t]
  267 + {@{\extracolsep\fill}lr}
  268 + Dia&2\\
  269 + Vim&1\\
  270 + \LaTeX&2\\
  271 + OpenOffice&3\\
  272 + Gimp&3\\
  273 + Blender&3\\
  274 + AutoCAD&3\\
  275 + Photoshop&3
  276 + \end{tabular*}}}
  277 + \vspace{5pt}
  278 + \end{minipage}}}}
  279 + \vspace{5pt}
  280 + \vbox{\frame{\makebox[.96\linewidth][c]{
  281 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  282 + {\small\sf Softwareengineering}
  283 + \end{minipage}}}
  284 + \frame{\makebox[.96\linewidth][c]
  285 + {\begin{minipage}[t]{.94\linewidth}
  286 + \vspace{5pt}
  287 + \vbox{\makebox[.96\linewidth][c]
  288 + {\begin{tabular*}{.88\linewidth}[t]
  289 + {@{\extracolsep\fill}lr}
  290 + Pflichten-/Lastenheft erstellen&3\\
  291 + OOA&3\\
  292 + ERM&3\\
  293 + UML&3
  294 + \end{tabular*}}}
  295 + \vspace{5pt}
  296 + \end{minipage}}}}
  297 + \vspace{5pt}
  298 + \vbox{\frame{\makebox[.96\linewidth][c]{
  299 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  300 + {\small\sf Hardware}
  301 + \end{minipage}}}
  302 + \frame{\makebox[.96\linewidth][c]
  303 + {\begin{minipage}[t]{.94\linewidth}
  304 + \vspace{5pt}
  305 + \vbox{\makebox[.96\linewidth][c]
  306 + {\begin{tabular*}{.88\linewidth}[t]
  307 + {@{\extracolsep\fill}lr}
  308 + PC-Hardware einbauen&2\\
  309 + kleine bis mittlere LANs&2\\
  310 + St"orungssuche&3
  311 + \end{tabular*}}}
  312 + \vspace{5pt}
  313 + \end{minipage}}}}
  314 + \end{center}
  315 + \end{minipage}
  316 + \begin{minipage}[t][\height][c]{.5\linewidth}\begin{center}
  317 + \vbox{\frame{\makebox[.96\linewidth][c]{
  318 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  319 + {\small\sf Programmiersprachen}
  320 + \end{minipage}}}
  321 + \frame{\makebox[.96\linewidth][c]
  322 + {\begin{minipage}[t]{.94\linewidth}
  323 + \vspace{5pt}
  324 + \vbox{\makebox[.96\linewidth][c]
  325 + {\begin{tabular*}{.88\linewidth}[t]
  326 + {@{\extracolsep\fill}lr}
  327 + C&1\\
  328 + C++&1\\
  329 + Java&3\\
  330 + Pascal&2\\
  331 + Basic&3\\
  332 + Cobol&4\\
  333 + Lisp/Scheme&3\\
  334 + TCL&4\\
  335 + Perl&3\\
  336 + PHP&2\\
  337 + JavaScript&3\\
  338 + HTML&2\\
  339 + SQL&2
  340 + \end{tabular*}}}
  341 + \vspace{5pt}
  342 + \end{minipage}}}}
  343 + \vspace{5pt}
  344 + \vbox{\frame{\makebox[.96\linewidth][c]{
  345 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  346 + {\small\sf Datenbanken}
  347 + \end{minipage}}}
  348 + \frame{\makebox[.96\linewidth][c]
  349 + {\begin{minipage}[t]{.94\linewidth}
  350 + \vspace{5pt}
  351 + \vbox{\makebox[.96\linewidth][c]
  352 + {\parbox[t][][c]{.88\linewidth}
  353 + {Allgemein gute Kenntnisse in SQL, daher leichter
  354 + Einstieg in jedes SQL-Datenbanksystem.\\
  355 + Ich hatte bisher Kontakt mit folgenden
  356 + Datenbanksystemen:}}}
  357 + \vspace{5pt}
  358 + \vbox{\makebox[.96\linewidth][c]
  359 + {\begin{tabular*}{.88\linewidth}[t]
  360 + {@{\extracolsep\fill}lr}
  361 + PostgreSQL&1\\
  362 + MySQL&1\\
  363 + Adabas&3\\
  364 + Informix&3\\
  365 + \end{tabular*}}}
  366 + \vspace{5pt}
  367 + \end{minipage}}}}
  368 + \vspace{5pt}
  369 + \vbox{\frame{\makebox[.96\linewidth][c]{
  370 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  371 + {\small\sf Dienste einrichten/konfigurieren}
  372 + \end{minipage}}}
  373 + \frame{\makebox[.96\linewidth][c]
  374 + {\begin{minipage}[t]{.94\linewidth}
  375 + \vspace{5pt}
  376 + \vbox{\makebox[.96\linewidth][c]
  377 + {\begin{tabular*}{.88\linewidth}[t]
  378 + {@{\extracolsep\fill}lr}
  379 + SMTP (Postfix)&3\\
  380 + HTTP (Apache)&3\\
  381 + FTP (ProFtp)&3\\
  382 + DNS (BIND pre 8)&3\\
  383 + NTP&3\\
  384 + NFS (Linux Kernel NFS)&3\\
  385 + NIS&3\\
  386 + SSH (OpenSSH)&3
  387 + \end{tabular*}}}
  388 + \vspace{5pt}
  389 + \end{minipage}}}}
  390 + \vspace{5pt}
  391 + \vbox{\frame{\makebox[.96\linewidth][c]{
  392 + \begin{minipage}[t][15pt][c]{.94\linewidth}
  393 + {\small\sf Fremdsprachen}
  394 + \end{minipage}}}
  395 + \frame{\makebox[.96\linewidth][c]
  396 + {\begin{minipage}[t]{.94\linewidth}
  397 + \vspace{5pt}
  398 + \vbox{\makebox[.96\linewidth][c]
  399 + {\begin{tabular*}{.88\linewidth}[t]
  400 + {@{\extracolsep\fill}lr}
  401 + Englisch&2
  402 + \end{tabular*}}}
  403 + \vspace{5pt}
  404 + \end{minipage}}}}
  405 + \end{center}
  406 + \end{minipage}}
  407 + \vspace{5pt}
  408 + Bei den Noten handelt es sich um meine Selbsteinsch"atzung. Ausreichend
  409 + bedeutet dabei, das ich mich mit der Thematik besch"aftigt habe und
  410 + erfolgreich erste Versuche darin gemacht habe. Mangelhafte und
  411 + ungen"ugende F"ahigkeiten sind f"ur mich keine F"ahigkeiten und tauchen
  412 + darum nicht auf. Wo (vermutlich) vorsteht habe ich nur theoretische
  413 + und noch keine praktische Erfahrung.
  414 +
  415 + Es ist denkbar, das hier nicht alle F"ahigkeiten stehen. Bitte fragen
  416 + Sie bei Interesse nach.\\
  417 + \vspace{5pt}
  418 + {\tiny 1 sehr gut, 2 gut, 3 befriedigend, %
  419 + 4 ausreichend, 5 mangelhaft, 6 ungen"ugend}
  420 + \vspace{5pt}
  421 + \end{minipage}}}
  422 +\vfill
  423 +\frame{\makebox[.96\linewidth][c]{\colorbox[gray]{.8}
  424 + {\begin{minipage}{.948\linewidth}
  425 + {\small\sf\bfseries Interessen}
  426 + \end{minipage}}}}
  427 +
  428 +\frame{\makebox[.96\linewidth][c]
  429 + {\begin{minipage}{.94\linewidth}
  430 + \vspace{5pt}
  431 + Kino, Musik, Open Source, Schwimmen, Sonne genie"sen,
  432 + Mein Linux administrieren
  433 + \vspace{5pt}
  434 + \end{minipage}}}
  435 +\end{document}
... ...
  1 +begin;
  2 +
  3 +-- Table und Funktionen um Länder zu verwalten --
  4 +-- [
  5 +drop sequence "land_id_land_seq";
  6 +
  7 +drop index "land_ukey1";
  8 +drop index "land_ukey2";
  9 +drop index "land_ukey3";
  10 +
  11 +drop function "chk_land" (text,varchar(3),varchar(4));
  12 +drop function "ins_land" (text,varchar(3),varchar(4));
  13 +drop function "get_id_land_by_land" (text);
  14 +drop function "get_id_land_by_lnd_kz" (varchar(3));
  15 +drop function "get_id_land_by_vorwahl_l" (varchar(4));
  16 +
  17 +drop table "land";
  18 +-- Ende Länder --
  19 +
  20 +-- Table und Funktionen um Orte zu verwalten --
  21 +-- [
  22 +drop sequence "ort_id_ort_seq";
  23 +
  24 +drop index "ort_ukey1";
  25 +
  26 +drop function "chk_ort" (text,varchar(10),int4);
  27 +drop function "ins_ort" (text,varchar(10),int4);
  28 +drop function "ins_ort" (text,varchar(10),text,varchar(3),varchar(4));
  29 +drop function "get_id_ort_by_ukey1" (varchar(10),int4);
  30 +
  31 +drop table "ort";
  32 +-- ]
  33 +-- ende Orte --
  34 +
  35 +-- Table und Funktionen um Adressen zu verwalten --
  36 +-- [
  37 +drop sequence "adresse_id_adresse_seq";
  38 +
  39 +drop index "adresse_ukey1";
  40 +
  41 +drop function "chk_adresse" (text,varchar(5),varchar(10),int4,int4);
  42 +drop function "ins_adresse" (text,varchar(5),varchar(10),int4,int4);
  43 +drop function "ins_adresse" (text,varchar(5),varchar(10),text,
  44 + varchar(5),text,varchar(3),varchar(4));
  45 +drop function "get_adresse_by_ukey1" (text,varchar(5),varchar(10));
  46 +
  47 +drop table "adresse";
  48 +-- ]
  49 +-- ende Adressen --
  50 +
  51 +-- Tabellen und alles für Personendaten
  52 +-- [
  53 +drop sequence "person_id_person_seq";
  54 +
  55 +drop index "person_ukey1";
  56 +
  57 +drop function "chk_person" (varchar(10),text,text,text,text,
  58 + varchar(10),varchar(10),varchar(10),varchar(50),
  59 + varchar(50),varchar(100));
  60 +drop function "ins_person" (varchar(10),text,text,text,text,
  61 + varchar(10),varchar(10),varchar(10),varchar(50),
  62 + varchar(50),varchar(100));
  63 +drop function "ins_person" (varchar(10),text,text,text,text,
  64 + varchar(10),varchar(10),varchar(10),varchar(50),
  65 + varchar(50),varchar(100),int4,int4,text,
  66 + text,money);
  67 +drop function "get_id_person_by_ukey1" (text, text, text);
  68 +
  69 +drop table "person";
  70 +drop table "wohnt";
  71 +-- ]
  72 +-- ende Personendaten --
  73 +
  74 +-- Arbeitsplatz --
  75 +-- [
  76 +drop sequence "firma_id_firma_seq";
  77 +drop sequence "abteilung_id_abteilung_seq";
  78 +
  79 +drop index "firma_ukey1";
  80 +drop index "abteilung_ukey1";
  81 +
  82 +drop function "chk_arbeit" (text, text, money, int4, int4);
  83 +drop function "ins_arbeit" (text, text, money, int4, int4);
  84 +drop function "chk_firma" (text, text, varchar(10));
  85 +drop function "ins_firma" (text, text, varchar(10));
  86 +drop function "chk_abteilung" (text, text, int4, int4);
  87 +drop function "ins_abteilung" (text, text, int4, int4);
  88 +drop function "ins_abteilung" (text, text, text, text, varchar(10), int4);
  89 +
  90 +drop table "firma";
  91 +drop table "abteilung";
  92 +drop table "arbeit";
  93 +-- ]
  94 +-- ende Arbeitsplatz --
  95 +
  96 +drop view "adresse_v";
  97 +drop view "person_v";
  98 +
  99 +commit;
... ...
  1 +-- der große ich mach alles auf einmale Aufruf :-)
  2 +-- das hat den anchteil, das beim loggen evtl. Daten verloren gehen, ich
  3 +-- vermute das haengt damit zusammen das jede Funktion eine in sich
  4 +-- abgeschlossene Transaktion darstellt und somit evt. durch andere Funktionen
  5 +-- bereitgestellte Daten nicht sieht.
  6 +select firma.ins_arbeit('Chef', 'Buchführung, Systemadministration, Programmierung', 900.00,
  7 + person.ins_person('Herr', 'Staatl. gepr. Informatikassistent',
  8 + 'Steffers', 'Georg', '1973-12-15', NULL,
  9 + '8993135', NULL, '01713258578',
  10 + 'georg@steffers.org', 'www.steffers.org',
  11 + adresse.ins_adresse('Warendorfer Straße', '75', '48155',
  12 + adresse.ins_ort('Münster', '0251',
  13 + adresse.ins_land('Deutschland', 'DE', '+49')),
  14 + adresse.id_land_by_lnd_kz('DE'))),
  15 + firma.id_abteilung_firma(
  16 + firma.ins_firma('Steffers Web- und Systemprogrammierung',
  17 + 'meine kleine Firma', NULL,
  18 + adresse.id_adresse('Warendorfer Straße', '75', '48155',
  19 + adresse.id_land_by_lnd_kz('DE')))));
  20 +
  21 +select firma.ins_arbeit('Chef2', 'Kundenaquise, Webdesign, Programmierung', 900.00,
  22 + person.ins_person('Herr', NULL,
  23 + 'Engbers', 'Marcus', '1973-01-18', NULL,
  24 + '977077', NULL, '01708309739',
  25 + 'chef@hwmann.de', 'www.steffers.org',
  26 + adresse.ins_adresse('Bahnhofstraße', '58', '48607',
  27 + adresse.ins_ort('Ochtrup', '02553',
  28 + adresse.ins_land('Deutschland', 'DE', '+49')),
  29 + adresse.id_land_by_lnd_kz('DE'))),
  30 + firma.id_abteilung_firma(
  31 + firma.ins_firma('Steffers Web- und Systemprogrammierung',
  32 + 'meine kleine Firma', NULL,
  33 + adresse.id_adresse('Tannenhofallee', '21', '48155',
  34 + adresse.id_land_by_lnd_kz('DE')))));
  35 +
  36 +--select ins_firma('Steffers Web- und Systemprogrammierung',
  37 +-- 'meine kleine Firma', NULL,
  38 +-- ins_adresse('Tannenhofallee', '21', '48155',
  39 +-- ins_ort('Münster', '0251',
  40 +-- ins_land('Deutschland', 'DE', '+49')),
  41 +-- id_land_by_lnd_kz('DE')));
  42 +
  43 +--select ins_person('Herr', 'Staatl. gepr. Informatikassistent', 'Steffers',
  44 +-- 'Georg', '1973-12-15', NULL, '8993135', NULL, '01713258578',
  45 +-- 'georg@steffers.org', 'www.steffers.org',
  46 +-- ins_adresse('Tannenhofallee', '21', '48155',
  47 +-- ins_ort('Münster', '0251',
  48 +-- ins_land('Deutschland', 'DE', '+49')),
  49 +-- id_land_by_lnd_kz('DE')));
  50 +
  51 +--select ins_arbeit('Chef', 'der Mann der alles alleine macht', 900.00,
  52 +-- id_person('Steffers', 'Georg', '1973-12-15'),
  53 +-- id_abteilung_firma(
  54 +-- id_firma('Steffers Web- und Systemprogrammierung',
  55 +-- NULL)));
  56 +
  57 +select person.ins_person('Frau', NULL, 'Vespermann', 'Tina', '1978-07-09',
  58 + NULL, '949780', NULL, '01711535514',
  59 + 'Tante_Tina@t-online.de', NULL,
  60 + adresse.ins_adresse('Walkemühlenweg', '8', '37574',
  61 + adresse.ins_ort('Einbeck', '05561',
  62 + adresse.id_land_by_lnd_kz('DE')),
  63 + adresse.id_land_by_lnd_kz('DE')));
  64 +
  65 +select person.ins_person('Frau', NULL, 'Steffers', 'Mechtild', '1951-04-09',
  66 + NULL, '98266', '98266', NULL, NULL, NULL,
  67 + adresse.ins_adresse('Krummer Weg', '31', '48607',
  68 + adresse.ins_ort('Ochtrup', '02553',
  69 + adresse.id_land_by_lnd_kz('DE')),
  70 + adresse.id_land_by_lnd_kz('DE')));
  71 +
  72 +select person.ins_person('Herr', NULL, 'Steffers', 'Wilhelm', '1943-09-09',
  73 + NULL, '98266', '98266', NULL, NULL, NULL,
  74 + adresse.id_adresse('Krummer Weg', '31', '48607',
  75 + adresse.id_land_by_lnd_kz('DE')));
  76 +
  77 +select person.person_adresse(
  78 + person.id_person('Steffers', 'Georg', '1973-12-15'),
  79 + adresse.id_adresse('Krummer Weg', '31', '48607',
  80 + adresse.id_land_by_lnd_kz('DE')));
  81 +
  82 +select person.ins_person('Frau', 'Dipl. Geophysikerin', 'Hofmann', 'Daniela',
  83 + '1974-01-27', NULL, '419665', NULL, '01758910013',
  84 + 'danhof@uni-bremen.de', NULL,
  85 + adresse.ins_adresse('Am Staugraben', '7', '28865',
  86 + adresse.ins_ort('Lilienthal', '04298',
  87 + adresse.id_land_by_lnd_kz('DE')),
  88 + adresse.id_land_by_lnd_kz('DE')));
  89 +
  90 +select person.ins_person('Herr', 'Dipl. Informatiker', 'Fellmann', 'Ralf',
  91 + '1974-01-01', NULL, '6744505', NULL, '01775474207',
  92 + 'felle@web.de', NULL,
  93 + adresse.ins_adresse('Wolbecker Str.', '52', '48155',
  94 + adresse.id_ort('0251',
  95 + adresse.id_land_by_lnd_kz('DE')),
  96 + adresse.id_land_by_lnd_kz('DE')));
  97 +
  98 +select person.ins_person('Frau', NULL, 'Voß', 'Anna', '1985-08-03', NULL,
  99 + '78523', NULL, '01786916935', 'gab58@web.de',
  100 + 'www.gab58.de.vu',
  101 + adresse.ins_adresse('Weezer Str.', '64', '47623',
  102 + adresse.ins_ort('Kevelaer', '02832',
  103 + adresse.id_land_by_lnd_kz('DE')),
  104 + adresse.id_land_by_lnd_kz('DE')));
  105 +
  106 +select person.ins_person('Frau', NULL, 'Bendyk', 'Catharina', '1980-11-10',
  107 + NULL, '970289', NULL, '01722374138',
  108 + 'lost-star@gmx.de',
  109 + 'www.cyboworld3.de/pages/deswahnsinnsbraut',
  110 + adresse.ins_adresse('Witte Sand', '8', '48653',
  111 + adresse.ins_ort('Coesfeld', '02541',
  112 + adresse.id_land_by_lnd_kz('DE')),
  113 + adresse.id_land_by_lnd_kz('DE')));
  114 +
... ...
  1 +dropdb shop
  2 +createdb -E LATIN1 shop
  3 +su -c "/home/georg/projects/shopsystem/mk_lang_and_funcs.sh" - postgres
  4 +psql -f cr_tables.sql shop
  5 +
... ...
  1 +createlang plpgsql shop
  2 +# psql -c "create function get_int4_record_val(record, text) returns int4 as '/home/georg/projects/shopsystem/plpgsql_support' language C;" shop
... ...
No preview for this file type
  1 +-- Funktionen um Adressen zu verwalten --
  2 +-- [
  3 +create function "chk_adresse" (text,varchar(5),varchar(10),int4,int4)
  4 + returns int4 as '
  5 + /*
  6 + * chk_adresse(strasse, h_nr, plz_a, id_ort, id_land)
  7 + *
  8 + * ueberpruefen ob die Adresse schon in der DB gespeichert ist.
  9 + *
  10 + * returns: -1: falsche Parameter
  11 + * -2: Inkonsistenz endeckt. Es existiert bereits eine
  12 + * Adresse mit dem einer, aber nicht alle der Parameter
  13 + * übereinstimmen
  14 + * 0: Adresse existiert noch nicht in der DB
  15 + * >0: Adresse existiert bereits, gibt id_adresse zurück.
  16 + */
  17 +
  18 + DECLARE
  19 + ida adresse.adresse%ROWTYPE;
  20 + BEGIN
  21 + IF $1 IS NULL OR $1 = '''' OR
  22 + $2 IS NULL OR $2 = '''' OR
  23 + $3 IS NULL OR $3 = '''' THEN
  24 + RETURN -1;
  25 + END IF;
  26 +
  27 + select INTO ida * from adresse.adresse where
  28 + strasse = $1 and plz_a = $3 and
  29 + id_land = $5;
  30 +
  31 + IF NOT FOUND THEN
  32 + RETURN 0;
  33 + ELSE
  34 + IF ida.h_nr <> $2 OR ida.id_ort <> $4 THEN
  35 + RETURN -2;
  36 + END IF;
  37 + END IF;
  38 +
  39 + RETURN ida._id_;
  40 + END;
  41 + ' language 'plpgsql';
  42 +
  43 +create function "ins_adresse" (text,varchar(5),varchar(10),int4,int4)
  44 + returns int4 as '
  45 + /*
  46 + * ins_adresse(strasse, h_nr, plz_a, id_ort, id_land)
  47 + *
  48 + * fügt eine Adresse in die DB ein sofern es nicht schon existiert,
  49 + * inkonsistenzen erzeugt wuerden, oder die Eingabedaten fehlerhast
  50 + * sind.
  51 + *
  52 + * returns: 0: wenn die Adresse nicht eingefuegt werden kann
  53 + * >0: wenn die Adresse eingefuegt werden konnte oder bereits
  54 + * existierte, gibt id_adresse zurück.
  55 + */
  56 +
  57 + DECLARE
  58 + id_adresse adresse.adresse._id_%TYPE;
  59 + BEGIN
  60 + select INTO id_adresse adresse.chk_adresse($1, $2, $3, $4, $5);
  61 +
  62 + IF id_adresse = -1 THEN
  63 + RETURN 0;
  64 + ELSE
  65 + IF id_adresse = 0 THEN
  66 + insert into adresse.adresse (strasse,h_nr,plz_a,
  67 + id_ort,id_land)
  68 + values ($1, $2, $3, $4, $5);
  69 +
  70 + select INTO id_adresse adresse.chk_adresse($1,$2,$3,$4,$5);
  71 + END IF;
  72 + END IF;
  73 +
  74 + RETURN id_adresse;
  75 + END;
  76 + ' language 'plpgsql';
  77 +
  78 +create function "id_adresse" (text,varchar(5),varchar(10),int4)
  79 + returns int4 as '
  80 + /*
  81 + * id_adresse(strasse, h_nr, plz_a, id_land)
  82 + *
  83 + * Ermittelt die id (id_adresse) einer in der DB enthaltenen Adresse
  84 + * anhand des Primaerschluessels (vorwahl_o, id_land)
  85 + *
  86 + * returns: 0: wenn das Land nicht eingefuegt werden kann
  87 + * >0: wenn das Land gefunden wurde, gibt id_land zurück.
  88 + */
  89 +
  90 + DECLARE
  91 + ida adresse.adresse._id_%TYPE;
  92 + BEGIN
  93 + select INTO ida _id_ from adresse.adresse where
  94 + strasse = $1 and h_nr = $2 and plz_a = $3 and id_land = $4;
  95 +
  96 + IF NOT FOUND THEN
  97 + RETURN 0;
  98 + ELSE
  99 + RETURN ida;
  100 + END IF;
  101 + END;
  102 + ' language 'plpgsql';
  103 +-- ]
  104 +-- Ende Adressen --
... ...
  1 +-- Funktionen um Arbeitsplaetze zu verwalten --
  2 +-- [
  3 +create function "chk_arbeit" (text,text,numeric(10,2),int4,int4)
  4 + returns int4 as '
  5 + /*
  6 + * chk_arbeit(position, beschreibung, gehalt, id_person, id_abteilung)
  7 + *
  8 + * ueberpruefen ob eine passender Stelle in der DB gespeichert ist.
  9 + *
  10 + * returns: -1: falsche Parameter
  11 + * -2: Inkonsistenz endeckt. Es existiert bereits eine
  12 + * Adresse mit dem einer, aber nicht alle der Parameter
  13 + * übereinstimmen
  14 + * 0: Adresse existiert noch nicht in der DB
  15 + * >0: Adresse existiert bereits, gibt id_adresse zurück.
  16 + */
  17 +
  18 + DECLARE
  19 + ida firma.arbeit%ROWTYPE;
  20 + BEGIN
  21 + IF $4 IS NULL OR $4 < 1 OR
  22 + $5 IS NULL OR $5 < 1 OR
  23 + $1 IS NULL OR $1 = '''' THEN
  24 + RETURN -1;
  25 + END IF;
  26 +
  27 + select INTO ida * from firma.arbeit where
  28 + id_person = $4 and id_abteilung = $5;
  29 +
  30 + IF NOT FOUND THEN
  31 + RETURN 0;
  32 + ELSE
  33 + IF ida.position <> $1 OR ida.beschreibung <> $2 OR
  34 + ida.gehalt <> $3 THEN
  35 + RETURN -2;
  36 + END IF;
  37 + END IF;
  38 +
  39 + RETURN 1;
  40 + END;
  41 + ' language 'plpgsql';
  42 +
  43 +create function "ins_arbeit" (text,text,numeric(10,2),int4,int4)
  44 + returns int4 as '
  45 + /*
  46 + * ins_arbeit(position, beschreibung, gehalt, id_person, id_abteilung)
  47 + *
  48 + * fügt eine Stelle in die DB ein sofern es nicht schon existiert,
  49 + * inkonsistenzen erzeugt wuerden, oder die Eingabedaten fehlerhast
  50 + * sind.
  51 + *
  52 + * returns: 0: wenn die Adresse nicht eingefuegt werden kann
  53 + * >0: wenn die Adresse eingefuegt werden konnte oder bereits
  54 + * existierte, gibt id_adresse zurück.
  55 + */
  56 +
  57 + DECLARE
  58 + chk int4;
  59 + BEGIN
  60 + select INTO chk firma.chk_arbeit($1, $2, $3, $4, $5);
  61 +
  62 + IF chk = 0 THEN
  63 + insert into firma.arbeit (position, beschreibung, gehalt,
  64 + id_person, id_abteilung)
  65 + values ($1, $2, $3, $4, $5);
  66 +
  67 + RETURN 1;
  68 + END IF;
  69 +
  70 + RETURN 0;
  71 + END;
  72 + ' language 'plpgsql';
  73 +
  74 +create function "chk_firma" (text, text, varchar(10))
  75 + returns int4 as '
  76 + /*
  77 + * chk_firma(name, beschreibung, plz_f)
  78 + *
  79 + * ueberpruefen ob die Firma schon in der DB gespeichert ist.
  80 + *
  81 + * returns: -1: falsche Parameter
  82 + * -2: Inkonsistenz endeckt. Es existiert bereits ein
  83 + * Land mit dem einer, aber nicht alle der Parameter
  84 + * übereinstimmen
  85 + * 0: Land existiert noch nicht in der DB
  86 + * >0: Land existiert bereits, gibt id_land zurück.
  87 + */
  88 +
  89 + DECLARE
  90 + idf firma.firma%ROWTYPE;
  91 + BEGIN
  92 + IF $1 IS NULL OR $1 = '''' THEN
  93 + return -1;
  94 + END IF;
  95 +
  96 + IF $3 IS NOT NULL THEN
  97 + select INTO idf * from firma.firma where
  98 + name = $1 and plz_f = $3;
  99 + ELSE
  100 + select INTO idf * from firma.firma where
  101 + name = $1;
  102 + END IF;
  103 +
  104 + IF NOT FOUND THEN
  105 + RETURN 0;
  106 + ELSE
  107 + IF idf.beschreibung <> $2 THEN
  108 + RETURN -2;
  109 + END IF;
  110 + END IF;
  111 +
  112 + RETURN idf._id_;
  113 + END;
  114 + ' language 'plpgsql';
  115 +
  116 +create function "ins_firma" (text, text, varchar(10), int4)
  117 + returns int4 as '
  118 + /*
  119 + * ins_firma(name, beschreibung, plz_f, id_adresse)
  120 + *
  121 + * fügt eine Firma in die DB ein sofern es nicht schon existiert,
  122 + * inkonsistenzen erzeugt wuerden, oder die Eingabedaten fehlerhast
  123 + * sind.
  124 + * Ausserdem wir die globale Abteilung zu der Firma angelegt, siehe
  125 + * cr_tables.sql
  126 + *
  127 + * returns: 0: wenn die Firma nicht eingefuegt werden kann
  128 + * >0: wenn die Firma eingefuegt werden konnte oder bereits
  129 + * existierte, gibt id_firma zurück.
  130 + */
  131 +
  132 + DECLARE
  133 + idf firma.firma._id_%TYPE;
  134 + BEGIN
  135 + select INTO idf firma.chk_firma($1, $2, $3);
  136 +
  137 + IF idf < 0 THEN
  138 + RETURN 0;
  139 + ELSE
  140 + IF idf = 0 THEN
  141 + insert into firma.firma (name, beschreibung, plz_f)
  142 + values ($1, $2, $3);
  143 +
  144 + select INTO idf firma.chk_firma($1, $2, $3);
  145 +
  146 + PERFORM firma.ins_abteilung(''_FIRMA_'', $2, idf, $4);
  147 + END IF;
  148 + END IF;
  149 +
  150 + RETURN idf;
  151 + END;
  152 + ' language 'plpgsql';
  153 +
  154 +create function "id_abteilung" (text, int4)
  155 + returns int4 as '
  156 + /*
  157 + * id_abteilung(bezeichnung, id_firma);
  158 + * gibt die id_abteilung einer bestimmten Abteilung einer
  159 + * bestimmten Firma aus.
  160 + *
  161 + * returns: 0: wenn keine passnede Abteilung existiert
  162 + * >0: die Abteilung (id_abteilung)
  163 + */
  164 +
  165 + DECLARE
  166 + ida firma.abteilung._id_%TYPE;
  167 + BEGIN
  168 + select INTO ida _id_ from firma.abteilung where
  169 + id_firma = $2 and bezeichnung = $1;
  170 +
  171 + IF NOT FOUND THEN
  172 + RETURN 0;
  173 + ELSE
  174 + RETURN ida;
  175 + END IF;
  176 + END;
  177 + ' language 'plpgsql';
  178 +
  179 +create function "id_firma" (text,varchar(10))
  180 + returns int4 as '
  181 + /*
  182 + * id_firma(name, plz_f);
  183 + * gibt die id_abteilung der zentralen Abteilung einer Firma aus
  184 + * siehe dazu auch cr_tables.sql
  185 + *
  186 + * returns: 0: wenn keine passende Firma existiert
  187 + * >0: die Firma (id_firma)
  188 + */
  189 +
  190 + DECLARE
  191 + idf firma.firma._id_%TYPE;
  192 + BEGIN
  193 + IF $2 IS NOT NULL THEN
  194 + select INTO idf _id_ from firma.firma where
  195 + name = $1 and plz_f = $2;
  196 + ELSE
  197 + select INTO idf _id_ from firma.firma where
  198 + name = $1;
  199 + END IF;
  200 +
  201 + IF NOT FOUND THEN
  202 + RETURN 0;
  203 + ELSE
  204 + RETURN idf;
  205 + END IF;
  206 + END;
  207 + ' language 'plpgsql';
  208 +
  209 +create function "id_abteilung_firma" (int4)
  210 + returns int4 as '
  211 + /*
  212 + * id_abteilung_firma(id_firma);
  213 + * gibt die id_abteilung der zentralen Abteilung einer Firma aus
  214 + * siehe dazu auch cr_tables.sql
  215 + *
  216 + * returns: 0: wenn keine Firma zu dieser id_firma existiert
  217 + * >0: die Abteilung zu der Firma (id_abteilung)
  218 + */
  219 +
  220 + DECLARE
  221 + ida firma.abteilung._id_%TYPE;
  222 + BEGIN
  223 + select INTO ida _id_ from firma.abteilung where
  224 + id_firma = $1 and bezeichnung = ''_FIRMA_'';
  225 +
  226 + IF NOT FOUND THEN
  227 + RETURN 0;
  228 + ELSE
  229 + RETURN ida;
  230 + END IF;
  231 + END;
  232 + ' language 'plpgsql';
  233 +
  234 +create function "chk_abteilung" (text, text, int4, int4)
  235 + returns int4 as '
  236 + /*
  237 + * chk_abteilung(bezeichnung, beschreibung, id_firma, id_adresse)
  238 + *
  239 + * ueberpruefen ob die Abteilung schon in der DB gespeichert ist.
  240 + *
  241 + * returns: -1: falsche Parameter
  242 + * -2: Inkonsistenz endeckt. Es existiert bereits ein
  243 + * Land mit dem einer, aber nicht alle der Parameter
  244 + * übereinstimmen
  245 + * 0: Land existiert noch nicht in der DB
  246 + * >0: Land existiert bereits, gibt id_land zurück.
  247 + */
  248 +
  249 + DECLARE
  250 + ida firma.abteilung%ROWTYPE;
  251 + BEGIN
  252 + IF $1 IS NULL OR $1 = '''' OR
  253 + $3 IS NULL OR $3 < 1 THEN
  254 + RETURN -1;
  255 + END IF;
  256 +
  257 + select INTO ida * from firma.abteilung where
  258 + bezeichnung = $1 and id_firma = $3;
  259 +
  260 + IF NOT FOUND THEN
  261 + RETURN 0;
  262 + ELSE
  263 + IF ida.beschreibung <> $2 OR
  264 + ida.id_adresse <> $4 THEN
  265 + RETURN -2;
  266 + END IF;
  267 + END IF;
  268 +
  269 + RETURN ida._id_;
  270 + END;
  271 + ' language 'plpgsql';
  272 +
  273 +create function "ins_abteilung" (text, text, int4, int4)
  274 + returns int4 as '
  275 + /*
  276 + * ins_abteilung(bezeichnung, beschreibung, id_firma, id_adresse)
  277 + *
  278 + * fügt eine Abteilung in die DB ein sofern es nicht schon existiert,
  279 + * inkonsistenzen erzeugt wuerden, oder die Eingabedaten fehlerhast
  280 + * sind.
  281 + *
  282 + * returns: 0: wenn die Abteilung nicht eingefuegt werden kann
  283 + * >0: wenn die Abteilung eingefuegt werden konnte oder bereits
  284 + * existierte, gibt id_firma zurück.
  285 + */
  286 +
  287 + DECLARE
  288 + ida firma.abteilung._id_%TYPE;
  289 + BEGIN
  290 + select INTO ida firma.chk_abteilung($1, $2, $3, $4);
  291 +
  292 + IF ida = -1 THEN
  293 + RETURN 0;
  294 + ELSE
  295 + IF ida = 0 THEN
  296 + insert into firma.abteilung (bezeichnung, beschreibung,
  297 + id_firma, id_adresse)
  298 + values ($1, $2, $3, $4);
  299 +
  300 + select INTO ida firma.chk_abteilung($1, $2, $3, $4);
  301 + END IF;
  302 + END IF;
  303 +
  304 + RETURN ida;
  305 + END;
  306 + ' language 'plpgsql';
  307 +-- ]
  308 +-- Ende Arbeitsplatz --
... ...
Please register or login to post a comment