vf-dbmodell



Syntax
------

- ... Inhalt entfernt
+ ... Inhalt hinzugefügt






------------------------------------------------------------------------------------------
----- v1.2 released ----------------------------------------------------------------------
------------------------------------------------------------------------------------------

2010-10-11  Michael Bellair <bellair@freenet.de>

	* Nächste Version



2010-10-11  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- tl.erzeuge__DBModell:
	+ %\\makeglossary
	+ \\makeglossaries

	+ %    \printglossary
	+ \printglossaries



2010-09-07  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__p_prtverbindung:
	+ DROP VIEW prj.zeige__p_prtverbindung;
	CREATE OR REPLACE VIEW prj.zeige__p_prtverbindung
	AS
		SELECT DISTINCT
			prj.p_prtverbindung.id AS prj__p_prtverbindung__id
			, prj.p_prtverbindung.prj_projekte_id
			, prj.p_prtverbindung.notizen AS notizen_nachf
			, prj.p_prtverbindung.prt_protokoll_id_nachf
			, prt.protokoll.prt_typ_id AS prt_typ_id_nachf
			, vorg.prt_protokoll_id_vorg
		FROM
			prj.p_prtverbindung
				--
				-- Vorgänger zum Protokolleintrag anzeigen
				--
				LEFT OUTER JOIN prj.p_prtverbindung AS vorg
					ON (
						prj.p_prtverbindung.prt_protokoll_id_vorg = vorg.prt_protokoll_id_vorg
					AND
						prj.p_prtverbindung.prj_projekte_id = vorg.prj_projekte_id
					)
			, prt.protokoll
		WHERE
			prj.p_prtverbindung.idfrei = 0
		AND
			prj.p_prtverbindung.prt_protokoll_id_nachf = prt.protokoll.id
		ORDER BY
			prj.p_prtverbindung.prj_projekte_id
			, prj.p_prtverbindung.prt_protokoll_id_nachf
			, vorg.prt_protokoll_id_vorg
	;
	SELECT intern.nimm__TLKommentarSicht( 'prj.zeige__p_prtverbindung'
	, ARRAY[
	  'prj__p_prtverbindung__id'
	, 'prj_projekte_id'
	, 'notizen_nachf'
	, 'prt_protokoll_id_nachf'
	, 'prt_typ_id_nachf'
	, 'prt_protokoll_id_vorg'
	]
	, ARRAY[
	E'siehe \\texttt{prj.p_prtverbindung.id}'
	, E'siehe \\texttt{prj.p_prtverbindung.prj_projekte_id}'
	, E'siehe \\texttt{prj.p_prtverbindung.notizen}'
	, E'siehe \\texttt{prj.p_prtverbindung.prt_protokoll_id_nachf}'
	, E'siehe \\texttt{prt.protokoll.prt_typ_id}'
	, E'siehe \\texttt{prt.prt_protokoll_id_vorg}'
	], 
	E'Es werden die projektspezifischen Vorgänger / Nachfolger der Sicherheitsanforderungen, Gefahrenprotokolleinträge und Terminplaneinträge angezeigt (siehe \\texttt{prj.p_prtverbindung}).' );


	
2010-07-06  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__pl_prtdokdoku_le:
	+   AND
	+	prj.pl_prtdokdoku.spr_uebvar_id_zus = dokdoku.spr_uebvar_id_zus




2010-05-17  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- spr.zeige__wgruppe:
	- SELECT
	-	spr_uebersetzung_id
	-	, spr_uebvar_id
	-	, spr_sprachen_id

	  GROUP BY 
	-	spr_uebersetzung_id
	-	, spr_uebvar_id
	-	, spr_sprachen_id

	- ORDER BY
	-	, spr_uebersetzung_id;

	+ SELECT
	+	 max( spr_uebvar_id ) AS spr_uebvar_id
	+	, max( spr_sprachen_id ) AS spr_sprachen_id




2010-04-20  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- tl.erzeuge__DBModell:
	- db varchar[] := ARRAY['vf', 'Virtuelles Fahrzeug', '1.1'];
	+ db varchar[] := ARRAY['vf', 'Virtuelles Fahrzeug', '1.2'];

	

	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	ELSIF(
		tabname='pp_strstrkt'
	)
	THEN

	- IF(
		NOT( tmpInteger < 5 )
	  ) 
	  THEN
		EXECUTE str.pruefe__fbwerte( 'FB-Ereignis', tabwerte[5]
						, 'prj.nimm__tabwerte(...)'
						, 'tabwerte[5]' );
	  END IF;

	- uGoG := ARRAY[ '3', '6' ];
	- spNamen := ARRAY[
			'prj_projekte_id'
			, 'str_strkt_id'
			, 'prj_personen_id'
			, 'spr_uebvar_id'
			, 'fbereignis'
			, 'notizen'
			];






	+ IF(
		NOT( tmpInteger < 5 )
	    ) 
	  THEN
		EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '0', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[5]' );
	  END IF;

	+ IF(
		NOT( tmpInteger < 6 )
	    ) 
	  THEN
		EXECUTE str.pruefe__fbwerte( 'FB-Ereignis', tabwerte[6]
						, 'prj.nimm__tabwerte(...)'
						, 'tabwerte[6]' );
	  END IF;

	+ uGoG := ARRAY[ '3', '7' ];
	+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'str_strkt_id'
			, 'prj_personen_id'
			, 'spr_uebvar_id'
			, 'spr_uebvar_id_zus'
			, 'fbereignis'
			, 'notizen'
			];

	


	* dbstruktur-tabellen.sql:

	ALTER TABLE prj.pp_strstrkt ADD COLUMN spr_uebvar_id_zus INT DEFAULT 0 NOT NULL;
	UPDATE prj.pp_strstrkt SET spr_uebvar_id_zus = 0;
	SELECT intern.nimm__TLKommentarSTS( 'prj.pp_strstrkt.spr_uebvar_id_zus', E'Dem einzelnen Strukturpunkt können projektabhängige Zusatzinformationen zugeordnet werden.');
	ALTER TABLE prj.pp_strstrkt ADD CONSTRAINT fk__prj_pp_strstrkt__spr_uebvar_id_zus FOREIGN KEY ( spr_uebvar_id_zus ) REFERENCES spr.uebvar ( id );






------------------------------------------------------------------------------------------
----- v1.1 released ----------------------------------------------------------------------
------------------------------------------------------------------------------------------

2010-03-01  Michael Bellair <bellair@freenet.de>

	* Nächste Version

	
2010-02-13  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- spr.nimm__wgruppe:
	- EXECUTE intern.pruefe__dt( 'gz', sprachenid, '1', NULL

	+ EXECUTE intern.pruefe__dt( 'gz', sprachenid, '0', NULL

	


2010-01-28  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	- IF(
	  ( ( tabname='pl_prtpsgefszenario' ) AND ( tmpInteger < 5 ) )
	  OR ( ( tabname='pl_psgefstrkt' OR tabname='ppl_dokdoku' ) AND ( tmpInteger < 6 ) )
	  OR ( ( tabname= 'pl_dokausgabe' OR tabname='pl_psgefanm' OR tabname='pl_psgefabk' ) AND ( tmpInteger < 7 ) )
	  OR ( tabname='pl_prtdokdoku' AND ( tmpInteger < 9 ) )
	    ) 

	+ IF(
	  ( ( tabname= 'pl_prtpsgefszenario' OR tabname='pl_psgefstrkt' OR tabname='ppl_dokdoku' ) AND ( tmpInteger < 6 ) )
	  OR ( ( tabname='pl_psgefabk' OR tabname='pl_psgefanm' ) AND ( tmpInteger < 7 ) )
	  OR ( ( tabname='pl_dokausgabe' ) AND ( tmpInteger < 8 ) )
	  OR ( tabname='pl_prtdokdoku' AND ( tmpInteger < 9 ) )
	    ) 



2010-01-27  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	  IF(
	  	tabname != 'projekte'
	    )
	  THEN
	  
	  	--
	  	-- >tabwerte[1]< muß mindestens  >1< sein.
	  	--
	-  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[1], '1', NULL
	-  					, 'prj.nimm__tabwerte(...)'
	-  					, tabname || '.tabwerte[1]' );

	  IF(
	  	tabname != 'projekte'
	    )
	  THEN
	  
	  	--
	  	-- >tabwerte[1]< muß mindestens  >0< sein.
	  	--
	+  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[1], '0', NULL
	+  					, 'prj.nimm__tabwerte(...)'
	+  					, tabname || '.tabwerte[1]' );



2010-01-05  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__prtprotokolltabellen:
	- , prj.p_prtverbindung.prt_protokoll_id_nachf AS prj__p_prtverbindung__prt_protokoll_id_nachf
	+ , prj.p_prtverbindung.prt_protokoll_id_vorg AS prj__p_prtverbindung__prt_protokoll_id_vorg

	- prt.protokoll.id = prj.p_prtverbindung.prt_protokoll_id_vorg 
	+ prt.protokoll.id = prj.p_prtverbindung.prt_protokoll_id_nachf



2009-11-20  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__strstrkt:
	- , prt.protokoll LEFT OUTER JOIN prj.pp_prtprotokoll ON (
				prt.protokoll.id = prj.pp_prtprotokoll.prt_protokoll_id
				AND prj.pp_prtprotokoll.idfrei = 0 )
	+ , prj.pp_prtprotokoll
	  WHERE
		prt.typ.id = prt.protokoll.prt_typ_id
	  AND
		prt.protokoll.idfrei = 0
	  AND
		prt.protokoll.id = prj.pp_prtprotokoll.prt_protokoll_id
	  AND
		prj.pp_prtprotokoll.idfrei = 0






2009-11-19  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	ALTER TABLE str.strkt DROP COLUMN fbereignis;
	ALTER TABLE str.strkt DROP COLUMN spr_uebvar_id;
	ALTER TABLE str.strkt ADD CONSTRAINT uc__str_str_strkt UNIQUE( idfrei, nr, str_name_id );
	DROP TABLE str.verbindung;



2009-11-17  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql:
	DROP FUNCTION str.nimm__strkt( IN tabwerte varchar[], OUT strktid varchar );
	DROP FUNCTION str.nimm__verbindung( IN tabwerte varchar[], OUT verbid varchar );




2009-11-17  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	- ELSIF(
		tabname='pu_strverbindung'
	  )
	THEN
	
		IF(
			NOT( tmpInteger < 3 )
		  ) 
		THEN
			EXECUTE str.pruefe__fbwerte( 'FB-Tor', tabwerte[3]
							, 'prj.nimm__tabwerte(...)'
							, 'tabwerte[3]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '4' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'str_verbindung_id'
				, 'fbtor'
				, 'notizen'
				];
	+ ELSIF(
		tabname='p_strverbindung'
	  )
	THEN
	
		IF(
			NOT( tmpInteger < 3 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		END IF;
	
		IF(
			NOT( tmpInteger < 4 )
		  ) 
		THEN
			EXECUTE str.pruefe__fbwerte( 'FB-Tor', tabwerte[4]
							, 'prj.nimm__tabwerte(...)'
							, 'tabwerte[4]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '3', '5' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'str_strkt_id_vorg'
				, 'str_strkt_id_nachf'
				, 'fbtor'
				, 'notizen'
				];

	- ELSIF(
		tabname='ppu_strstrkt'
	  )
	THEN
	+ ELSIF(
		tabname='pp_strstrkt'
	  )
	THEN






2009-11-12  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__strstrkt:
	DROP VIEW prj.zeige__strstrkt;
	CREATE OR REPLACE VIEW prj.zeige__strstrkt
	AS
	  --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT
		--
		-- --	str.name	----------------------------------------------------------
		--
		str.name.id AS str__name__id
		, str.name.name AS str__name__name
		, str.name.name_k AS str__name__name_k
		, str.name.notizen AS str__name__notizen
		--
		-- --	str.strkt	----------------------------------------------------------
		--
		, str.strkt.id AS str__strkt__id
		, str.strkt.notizen AS str__strkt__notizen
		, str.strkt.nr AS str__strkt__nr
		--
		-- --	prj.pp_strstrkt	--------------------------------------------------
		--
		, prj.pp_strstrkt.id AS prj__pp_strstrkt__id
		, prj.pp_strstrkt.notizen AS prj__pp_strstrkt__notizen
		, prj.pp_strstrkt.fbereignis AS prj__pp_strstrkt__fbereignis
		, prj.pp_strstrkt.prj_personen_id AS prj__pp_strstrkt__prj_personen_id
		, prj.pp_strstrkt.prj_projekte_id AS prj_projekte_id
		, prj.pp_strstrkt.spr_uebvar_id AS prj__pp_strstrkt__spr_uebvar_id
		--
		-- --	prj.p_strverbindung	--------------------------------------------------
		--
		, prj.p_strverbindung.id AS prj__p_strverbindung__id
		, prj.p_strverbindung.notizen AS prj__p_strverbindung__notizen
		, prj.p_strverbindung.fbtor AS prj__p_strverbindung__fbtor
		, prj.p_strverbindung.str_strkt_id_nachf AS prj__p_strverbindung__str_strkt_id_nachf
	  FROM
		str.name
		, str.strkt
		, prj.pp_strstrkt
			--
			-- prj.p_strverbindung
			--
			LEFT OUTER JOIN prj.p_strverbindung ON (
			     	prj.pp_strstrkt.str_strkt_id = prj.p_strverbindung.str_strkt_id_vorg
			     AND
			        prj.pp_strstrkt.prj_projekte_id = prj.p_strverbindung.prj_projekte_id
			     AND
				prj.p_strverbindung.idfrei = 0 )
	  WHERE
		str.name.id = str.strkt.str_name_id
	  AND
		str.strkt.id = prj.pp_strstrkt.str_strkt_id
	  AND
		str.name.idfrei = 0
	  AND
		str.strkt.idfrei = 0
	  AND
		prj.pp_strstrkt.idfrei = 0
	;



2009-11-17  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	- ALTER TABLE prj.ppu_strstrkt DROP CONSTRAINT pk__prj_ppu_strstrkt_id;
	- ALTER TABLE prj.ppu_strstrkt DROP CONSTRAINT fk__prj_ppu_strstrkt__prj_personen_id;
	- ALTER TABLE prj.ppu_strstrkt DROP CONSTRAINT fk__prj_ppu_strstrkt__prj_projekte_id;
	- ALTER TABLE prj.ppu_strstrkt DROP CONSTRAINT fk__prj_ppu_strstrkt__str_strkt_id;
	- ALTER TABLE prj.ppu_strstrkt DROP CONSTRAINT fk__prj_ppu_strstrkt__spr_uebvar_id;
	- ALTER TABLE prj.ppu_strstrkt DROP CONSTRAINT uc__prj_ppu_strstrkt;
	- ALTER TABLE prj.ppu_strstrkt RENAME TO pp_strstrkt;
	- ALTER TABLE prj.pp_strstrkt ADD CONSTRAINT pk__prj_pp_strstrkt_id PRIMARY KEY(id);
	- ALTER TABLE prj.pp_strstrkt ADD CONSTRAINT fk__prj_pp_strstrkt__prj_personen_id FOREIGN KEY ( prj_personen_id ) REFERENCES prj.personen ( id );
	- ALTER TABLE prj.pp_strstrkt ADD CONSTRAINT fk__prj_pp_strstrkt__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	- ALTER TABLE prj.pp_strstrkt ADD CONSTRAINT fk__prj_pp_strstrkt__str_strkt_id FOREIGN KEY (str_strkt_id) REFERENCES str.strkt (id);
	- ALTER TABLE prj.pp_strstrkt ADD CONSTRAINT fk__prj_pp_strstrkt__spr_uebvar_id FOREIGN KEY ( spr_uebvar_id ) REFERENCES spr.uebvar ( id );
	- ALTER TABLE prj.pp_strstrkt ADD CONSTRAINT uc__prj_pp_strstrkt UNIQUE(idfrei, prj_personen_id, prj_projekte_id, str_strkt_id );




2009-11-17  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	- ALTER TABLE prj.pu_strverbindung DROP CONSTRAINT pk__prj_pu_strverbindung_id;
	- ALTER TABLE prj.pu_strverbindung DROP CONSTRAINT fk__prj_pu_strverbindung__prj_projekte_id;
	- ALTER TABLE prj.pu_strverbindung DROP CONSTRAINT fk__prj_pu_strverbindung__str_verbindung_id;
	- ALTER TABLE prj.pu_strverbindung DROP CONSTRAINT uc__prj_pu_strverbindung;
	- ALTER TABLE prj.pu_strverbindung RENAME TO p_strverbindung;
	- ALTER TABLE prj.p_strverbindung ADD COLUMN str_strkt_id_nachf INT DEFAULT 0 NOT NULL;
	- ALTER TABLE prj.p_strverbindung ADD COLUMN str_strkt_id_vorg INT DEFAULT 0 NOT NULL;
	- UPDATE prj.p_strverbindung SET str_strkt_id_nachf = str.verbindung.str_strkt_id_nachf, str_strkt_id_vorg = str.verbindung.str_strkt_id_vorg FROM str.verbindung WHERE prj.p_strverbindung.str_verbindung_id = str.verbindung.id;
	- ALTER TABLE prj.p_strverbindung DROP COLUMN str_verbindung_id;
	- SELECT intern.nimm__TLKommentarSTS( 'prj.p_strverbindung', 'Diese Tabelle dient der projektabhängigen gegenseitigen Zuordnung der Strukturpunkte.');
	- SELECT intern.nimm__TLKommentarSTS( 'prj.p_strverbindung.str_strkt_id_nachf', 'Identifikationsnummer des Strukturpunktes, welcher auf einen weiteren Strukturpunkt verweist (diesem folgt).');
	- SELECT intern.nimm__TLKommentarSTS( 'prj.p_strverbindung.str_strkt_id_vorg', 'Identifikationsnummer des Strukturpunktes, welcher von einem weiteren Strukturpunkt referenziert wird.');
	- ALTER TABLE prj.p_strverbindung ADD CONSTRAINT pk__prj_p_strverbindung_id PRIMARY KEY(id);
	- ALTER TABLE prj.p_strverbindung ADD CONSTRAINT fk__prj_p_strverbindung__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	- ALTER TABLE prj.p_strverbindung ADD CONSTRAINT fk__prj_p_strverbindung__str_strkt_id_nachf FOREIGN KEY (str_strkt_id_nachf) REFERENCES str.strkt (id);
	- ALTER TABLE prj.p_strverbindung ADD CONSTRAINT fk__prj_p_strverbindung__str_strkt_id_vorg FOREIGN KEY (str_strkt_id_vorg) REFERENCES str.strkt (id);
	- ALTER TABLE prj.p_strverbindung ADD CONSTRAINT uc__prj_p_strverbindung UNIQUE(idfrei, prj_projekte_id, str_strkt_id_nachf, str_strkt_id_vorg );
	- ALTER TABLE prj.p_strverbindung ADD CONSTRAINT cc__prj_p_strverbindung CHECK( 
		-- Alle Fremdschluessel müssen Null sein, wenn >id< gleich Null ist
		( str_strkt_id_nachf = 0 AND str_strkt_id_vorg = 0 ) 
		-- Wenn >id< größer 0 ist, muss >str_strkt_id_vorg< größer Null sein !
		OR ( id > 0 AND str_strkt_id_vorg > 0 ) 
	);
	SELECT intern.nimm__TLKommentar( 'CONSTRAINT cc__prj_p_strverbindung ON prj.p_strverbindung', E'Wenn \\texttt{id} Null ist, müssen \\texttt{str_strkt_id_vorg} und \\texttt{str_strkt_id_nachf} Null sein. Sonst muß \\texttt{str_strkt_id_vorg} immer größer Null sein.' );




2009-11-12  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	--
	-- tabname='pl_psgefanm'
	--
	- uGoG := ARRAY[ '2', '9' ];
	- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'logentfernt'
			, 'spr_uebvar_id'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];


	--
	-- Plausibilitätsprüfung ab tabwerte[5]
	--
	+ IF(
		NOT( tmpInteger < 5 )
	  ) 
	THEN
		EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '0', NULL
					, 'prj.nimm__tabwerte(...)'
					, tabname || '.tabwerte[5]' );
	END IF;

	--
	-- Werte zuweisen
	--
	+ uGoG := ARRAY[ '5', '10' ];
	+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'logentfernt'
			, 'ps_anmerkung_id'
			, 'spr_uebvar_id'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];







2009-11-12  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__pl_psgefanm_le:
	+ AND
		prj.pl_psgefanm.ps_anmerkung_id = gefanm.ps_anmerkung_id




2009-11-12  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__pl_psgefanm:
	+ , ps_anmerkung_id




2009-11-12  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	+ CREATE TABLE ps.anmerkung (
		LIKE intern.alle INCLUDING DEFAULTS
	) WITHOUT OIDS;
	+ INSERT INTO ps.anmerkung VALUES( 0 );
	
	+ SELECT intern.nimm__TLKommentarSTS( 'ps.anmerkung', E'In dieser Tabelle werden alle im Schema \\texttt{ps} verwendeten Anmerkungen gehalten.' );
	
	+ ALTER TABLE ps.anmerkung ADD CONSTRAINT pk__ps_anmerkung_id PRIMARY KEY(id);

	+ SELECT
		  id
		, idfrei
		, notizen
		, logdatuhrz
		, logdqok
		, logdquelle
		, logentfernt
		, logname
		, prj_projekte_id
		, 0 AS ps_anmerkung_id
		, ps_gefszenario_id
		, spr_uebvar_id
	INTO
		prj.pl_psgefanm_
	FROM
		prj.pl_psgefanm
	;
	
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN id SET DEFAULT 0;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN id SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN idfrei SET DEFAULT 0;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN idfrei SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN notizen SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN logdatuhrz SET DEFAULT CAST( timeofday() AS timestamp );
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN logdatuhrz SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN logentfernt SET DEFAULT false;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN logentfernt SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN logname SET DEFAULT CAST( current_user AS text );
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN logname SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN prj_projekte_id SET DEFAULT 0;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN prj_projekte_id SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN ps_anmerkung_id SET DEFAULT 0;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN ps_anmerkung_id SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN ps_gefszenario_id SET DEFAULT 0;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN ps_gefszenario_id SET NOT NULL;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN spr_uebvar_id SET DEFAULT 0;
	+ ALTER TABLE prj.pl_psgefanm_ ALTER COLUMN spr_uebvar_id SET NOT NULL;
	
	+ DROP TABLE prj.pl_psgefanm;
	+ ALTER TABLE prj.pl_psgefanm_ RENAME TO pl_psgefanm;
	
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefanm.ps_anmerkung_id', 'Identifikationsnummer der Anmerkung welche dem Gefahrenszenario zugeordnet und deren Text gesetzt werden soll.');
	
	+ ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT fk__prj_pl_psgefanm__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	+ ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT fk__prj_pl_psgefanm__ps_anmerkung_id FOREIGN KEY ( ps_anmerkung_id ) REFERENCES ps.anmerkung ( id );
	+ ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT fk__prj_pl_psgefanm__ps_gefszenario_id FOREIGN KEY ( ps_gefszenario_id ) REFERENCES ps.gefszenario ( id );
	+ ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT fk__prj_pl_psgefanm__spr_uebvar_id FOREIGN KEY ( spr_uebvar_id ) REFERENCES spr.uebvar ( id );
	+ ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT uc__prj_pl_psgefanm UNIQUE(idfrei, prj_projekte_id, ps_anmerkung_id, ps_gefszenario_id, logentfernt, logdatuhrz );
	
	+ INSERT INTO ps.anmerkung VALUES(1);
	+ INSERT INTO ps.anmerkung VALUES(2);
	+ INSERT INTO ps.anmerkung VALUES(3);
	+ INSERT INTO ps.anmerkung VALUES(4);
	+ INSERT INTO ps.anmerkung VALUES(5);
	+ INSERT INTO ps.anmerkung VALUES(6);
	
	+ UPDATE prj.pl_psgefanm SET ps_anmerkung_id = 1 WHERE id IN(1,2,3,7,9,10,13,12,8,11);
	+ UPDATE prj.pl_psgefanm SET ps_anmerkung_id = 2 WHERE id IN(4,14,20,21);
	+ UPDATE prj.pl_psgefanm SET ps_anmerkung_id = 3 WHERE id IN(15,5);
	+ UPDATE prj.pl_psgefanm SET ps_anmerkung_id = 4 WHERE id IN(6,16);
	+ UPDATE prj.pl_psgefanm SET ps_anmerkung_id = 5 WHERE id IN(17,18);
	+ UPDATE prj.pl_psgefanm SET ps_anmerkung_id = 6 WHERE id IN(19);
	
	
	
2009-11-05  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	+ DROP TABLE ps.gefabk;
	+ DROP TABLE ps.gefanm;
	+ DROP TABLE ps.gefprot;
	+ DROP TABLE ps.gefstrkt;


	* dbstruktur-funktionen.sql:
	+ DROP FUNCTION ps.nimm__tabwerte( IN tabname varchar, IN tabwerte varchar[], OUT tabnameid varchar )

	

2009-11-05  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefstrkt_le:
	-   SELECT
		gefstrkt.id AS prj__pl_psgefstrkt__id
		--
		-- Kontrolle
		--
	--	, gefstrkt.logdatuhrz
	--	, gefstrkt.logentfernt AS prj__pl_psgefstrkt__logentfernt
	--	, gefstrkt.prj_projekte_id
	--	, gefstrkt.ps_gefstrkt_id
	  FROM
		prj.pl_psgefstrkt
			LEFT OUTER JOIN prj.pl_psgefstrkt AS gefstrkt
				ON (
					prj.pl_psgefstrkt.ps_gefstrkt_id = gefstrkt.ps_gefstrkt_id
				   AND
					prj.pl_psgefstrkt.prj_projekte_id = gefstrkt.prj_projekte_id
				   AND
					prj.pl_psgefstrkt.idfrei = 0
				   AND
					gefstrkt.idfrei = 0
				)
	  GROUP BY
		gefstrkt.id
		, gefstrkt.logdatuhrz
		--
		-- Kontrolle
		--
	--	, gefstrkt.logentfernt
	--	, gefstrkt.prj_projekte_id
	--	, gefstrkt.ps_gefstrkt_id
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_psgefstrkt.logdatuhrz ) = gefstrkt.logdatuhrz
	  ORDER BY
		gefstrkt.id

	+ CREATE OR REPLACE VIEW prj.zeige__pl_psgefstrkt_le
	AS
	  SELECT
		gefstrkt.id AS prj__pl_psgefstrkt__id
		--
		-- Kontrolle
		--
	--	, gefstrkt.logdatuhrz
	--	, gefstrkt.logentfernt AS prj__pl_psgefstrkt__logentfernt
	--	, gefstrkt.prj_projekte_id
	--	, gefstrkt.ps_gefszenario_id
	  FROM
		prj.pl_psgefstrkt
			LEFT OUTER JOIN prj.pl_psgefstrkt AS gefstrkt
				ON (
					prj.pl_psgefstrkt.ps_gefszenario_id = gefstrkt.ps_gefszenario_id
				   AND
					prj.pl_psgefstrkt.str_strkt_id = gefstrkt.str_strkt_id
				   AND
					prj.pl_psgefstrkt.prj_projekte_id = gefstrkt.prj_projekte_id
				   AND
					prj.pl_psgefstrkt.idfrei = 0
				   AND
					gefstrkt.idfrei = 0
				)
	  GROUP BY
		gefstrkt.id
		, gefstrkt.logdatuhrz
		--
		-- Kontrolle
		--
	--	, gefstrkt.logentfernt
	--	, gefstrkt.prj_projekte_id
	--	, gefstrkt.ps_gefszenario_id
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_psgefstrkt.logdatuhrz ) = gefstrkt.logdatuhrz
	  ORDER BY
		gefstrkt.id
	;




2009-11-05  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefprot_le:
	-   SELECT
		gefprot.id AS prj__pl_psgefprot__id
		--
		-- Kontrolle
		--
	--	, gefprot.logdatuhrz
	--	, gefprot.logentfernt AS prj__pl_psgefprot__logentfernt
	--	, gefprot.prj_projekte_id
	--	, gefprot.ps_gefprot_id
	  FROM
		prj.pl_psgefprot
			LEFT OUTER JOIN prj.pl_psgefprot AS gefprot
				ON (
					prj.pl_psgefprot.ps_gefprot_id = gefprot.ps_gefprot_id
				   AND
					prj.pl_psgefprot.prj_projekte_id = gefprot.prj_projekte_id
				   AND
					prj.pl_psgefprot.idfrei = 0
				   AND
					gefprot.idfrei = 0
				)
	  GROUP BY
		gefprot.id
		, gefprot.logdatuhrz
		--
		-- Kontrolle
		--
	--	, gefprot.logentfernt
	--	, gefprot.prj_projekte_id
	--	, gefprot.ps_gefprot_id
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_psgefprot.logdatuhrz ) = gefprot.logdatuhrz
	  ORDER BY
		gefprot.id

	+ CREATE OR REPLACE VIEW prj.zeige__pl_prtpsgefszenario_le
	AS
	  SELECT
		gefprot.id AS prj__pl_prtpsgefszenario__id
		--
		-- Kontrolle
		--
	--	, gefprot.logdatuhrz
	--	, gefprot.logentfernt AS prj__pl_prtpsgefszenario__logentfernt
	--	, gefprot.prj_projekte_id
	--	, gefprot.ps_gefszenario_id
	  FROM
		prj.pl_prtpsgefszenario
			LEFT OUTER JOIN prj.pl_prtpsgefszenario AS gefprot
				ON (
					prj.pl_prtpsgefszenario.ps_gefszenario_id = gefprot.ps_gefszenario_id
				   AND
					prj.pl_prtpsgefszenario.prj_projekte_id = gefprot.prj_projekte_id
				   AND
					prj.pl_prtpsgefszenario.prt_protokoll_id = gefprot.prt_protokoll_id
				   AND
					prj.pl_prtpsgefszenario.idfrei = 0
				   AND
					gefprot.idfrei = 0
				)
	  GROUP BY
		gefprot.id
		, gefprot.logdatuhrz
		--
		-- Kontrolle
		--
	--	, gefprot.logentfernt
	--	, gefprot.prj_projekte_id
	--	, gefprot.ps_gefszenario_id
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_prtpsgefszenario.logdatuhrz ) = gefprot.logdatuhrz
	  ORDER BY
		gefprot.id
	;
	
	
	
	


2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefanm_le
	+ SELECT
		gefanm.id AS prj__plu_psgefanm__id
		--
		-- Kontrolle
		--
	--	, gefanm.logdatuhrz
	--	, gefanm.logentfernt AS prj__plu_psgefanm__logentfernt
	--	, gefanm.prj_projekte_id
	--	, gefanm.ps_gefanm_id
	  FROM
		prj.plu_psgefanm
			LEFT OUTER JOIN prj.plu_psgefanm AS gefanm
				ON (
					prj.plu_psgefanm.ps_gefanm_id = gefanm.ps_gefanm_id
				   AND
					prj.plu_psgefanm.prj_projekte_id = gefanm.prj_projekte_id
				   AND
					prj.plu_psgefanm.idfrei = 0
				   AND
					gefanm.idfrei = 0
				)
	  GROUP BY
		gefanm.id
		, gefanm.logdatuhrz
		--
		-- Kontrolle
		--
	--	, gefanm.logentfernt
	--	, gefanm.prj_projekte_id
	--	, gefanm.ps_gefanm_id
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.plu_psgefanm.logdatuhrz ) = gefanm.logdatuhrz
	  ORDER BY
		gefanm.id
	
	+ CREATE OR REPLACE VIEW prj.zeige__pl_psgefanm_le
	AS
	  SELECT
		gefanm.id AS prj__pl_psgefanm__id
		--
		-- Kontrolle
		--
	--	, gefanm.logdatuhrz
	--	, gefanm.logentfernt AS prj__pl_psgefanm__logentfernt
	--	, gefanm.prj_projekte_id
	--	, gefanm.ps_gefszenario_id
	  FROM
		prj.pl_psgefanm
			LEFT OUTER JOIN prj.pl_psgefanm AS gefanm
				ON (
					prj.pl_psgefanm.ps_gefszenario_id = gefanm.ps_gefszenario_id
				   AND
					prj.pl_psgefanm.prj_projekte_id = gefanm.prj_projekte_id
				   AND
					prj.pl_psgefanm.idfrei = 0
				   AND
					gefanm.idfrei = 0
				)
	  GROUP BY
		gefanm.id
		, gefanm.logdatuhrz
		--
		-- Kontrolle
		--
	--	, gefanm.logentfernt
	--	, gefanm.prj_projekte_id
	--	, gefanm.ps_gefszenario_id
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_psgefanm.logdatuhrz ) = gefanm.logdatuhrz
	  ORDER BY
		gefanm.id
	;

	

	
2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefabk_le:
	-   SELECT
		gefabk.id AS prj__plu_psgefabk__id
		--
		-- Kontrolle
		--
	--	, gefabk.logdatuhrz
	--	, gefabk.logentfernt AS prj__plu_psgefabk__logentfernt
	--	, gefabk.prj_projekte_id
	--	, gefabk.ps_gefabk_id
	  FROM
		prj.plu_psgefabk
			LEFT OUTER JOIN prj.plu_psgefabk AS gefabk
				ON (
					prj.plu_psgefabk.ps_gefabk_id = gefabk.ps_gefabk_id
				   AND
					prj.plu_psgefabk.prj_projekte_id = gefabk.prj_projekte_id
				   AND
					prj.plu_psgefabk.idfrei = 0
				   AND
					gefabk.idfrei = 0
				)

	+ CREATE OR REPLACE VIEW prj.zeige__pl_psgefabk_le
	AS
	  SELECT
		gefabk.id AS prj__pl_psgefabk__id
		--
		-- Kontrolle
		--
	--	, gefabk.logdatuhrz
	--	, gefabk.logentfernt AS prj__prj.pl_psgefabk__logentfernt
	--	, gefabk.prj_projekte_id
	--	, gefabk.ps_gefszenario_id
	  FROM
		prj.pl_psgefabk
			LEFT OUTER JOIN prj.pl_psgefabk AS gefabk
				ON (
					prj.pl_psgefabk.ps_gefszenario_id = gefabk.ps_gefszenario_id
				   AND
					prj.pl_psgefabk.ps_abk_id = gefabk.ps_abk_id
				   AND
					prj.pl_psgefabk.prj_projekte_id = gefabk.prj_projekte_id
				   AND
					prj.pl_psgefabk.idfrei = 0
				   AND
					gefabk.idfrei = 0
				)
	  GROUP BY
		gefabk.id
		, gefabk.logdatuhrz
		--
		-- Kontrolle
		--
	--	, gefabk.logentfernt
	--	, gefabk.prj_projekte_id
	--	, gefabk.ps_gefszenario_id
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_psgefabk.logdatuhrz ) = gefabk.logdatuhrz
	  ORDER BY
		gefabk.id
	;




2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefszenario:
	  --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefszenario	----------------------------------------------------------
		--
	        ps.gefszenario.id AS ps__gefszenario__id
		, prj.ppu_psgefszenario.notizen AS notizen
		, ps.gefszenario.notizen AS notizen_uni
		, prj.ppu_psgefszenario.spr_uebvar_id AS spr_uebvar_id
		, ps.gefszenario.spr_uebvar_id AS spr_uebvar_id_uni
		, prj.ppu_psgefszenario.spr_uebvar_id_reprgefszen AS spr_uebvar_id_reprgefszen
		, ps.gefszenario.spr_uebvar_id_reprgefszen AS spr_uebvar_id_reprgefszen_uni
		, prj.ppu_psgefszenario.spr_uebvar_id_ursp AS spr_uebvar_id_ursp
		, ps.gefszenario.spr_uebvar_id_ursp AS spr_uebvar_id_ursp_uni
		--
		-- --	prj.ppu_psgefszenario	--------------------------------------------------
		--
		, prj.ppu_psgefszenario.id AS prj__ppu_psgefszenario__id
		, prj.ppu_psgefszenario.prj_personen_id AS prj__personen__id
		, prj.ppu_psgefszenario.prj_projekte_id AS prj__projekte__id
	  FROM
		ps.gefszenario LEFT OUTER JOIN prj.ppu_psgefszenario ON (
					ps.gefszenario.id = prj.ppu_psgefszenario.ps_gefszenario_id
					AND ps.gefszenario.idfrei = 0
					AND prj.ppu_psgefszenario.idfrei = 0 )
	  UNION
	  --
	  -- projektunabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefszenario	----------------------------------------------------------
		--
		ps.gefszenario.id
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefszenario.notizen
		, NULL AS notizen_uni
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefszenario.spr_uebvar_id
		, 0 AS spr_uebvar_id_uni
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefszenario.spr_uebvar_id_reprgefszen
		, 0 AS spr_uebvar_id_reprgefszen_uni
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefszenario.spr_uebvar_id_ursp
		, 0 AS spr_uebvar_id_ursp_uni
		--
		-- --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
		--
		, 0
		, 0
		, 0
	  FROM
		ps.gefszenario
	  WHERE
		ps.gefszenario.idfrei = 0
	;

	+ CREATE OR REPLACE VIEW prj.zeige__pp_psgefszenario
	AS
	  SELECT DISTINCT
		  prj.pp_psgefszenario.id
		, prj.pp_psgefszenario.notizen
		, prj.pp_psgefszenario.prj_personen_id
		, prj.pp_psgefszenario.prj_projekte_id
		, prj.pp_psgefszenario.ps_gefszenario_id
		, prj.pp_psgefszenario.spr_uebvar_id
		, prj.pp_psgefszenario.spr_uebvar_id_reprgefszen
		, prj.pp_psgefszenario.spr_uebvar_id_ursp
	
	  FROM
		prj.pp_psgefszenario
	  WHERE
		prj.pp_psgefszenario.idfrei = 0
	;




2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefprot:
	  - --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefprot	----------------------------------------------------------
		--
		 ps.gefprot.id AS ps__gefprot__id
		--
		-- projektspezifisch modifizierter Wert wird gezeigt, wenn er nicht NULL ist
		--
		, prj.pl_psgefprot.notizen AS notizen
		, ps.gefprot.notizen AS notizen_uni
		--
		--
		--
		, ps.gefprot.prt_protokoll_id AS ps__gefprot__prt_protokoll_id
		, ps.gefprot.ps_gefszenario_id AS ps__gefprot__ps_gefszenario_id
		--
		-- --	prj.pl_psgefprot	--------------------------------------------------
		--
		, prj.pl_psgefprot.id AS prj__pl_psgefprot__id
		, prj.pl_psgefprot.logdatuhrz AS prj__pl_psgefprot__logdatuhrz
		, prj.pl_psgefprot.logdqok AS prj__pl_psgefprot__logdqok
		, prj.pl_psgefprot.logdquelle AS prj__pl_psgefprot__logdquelle
		, prj.pl_psgefprot.logentfernt AS prj__pl_psgefprot__logentfernt
		, prj.pl_psgefprot.logname AS prj__pl_psgefprot__logname
		, prj.pl_psgefprot.prj_projekte_id AS prj__pl_psgefprot__prj_projekte_id
	  FROM
		ps.gefprot LEFT OUTER JOIN prj.pl_psgefprot ON (
					ps.gefprot.id = prj.pl_psgefprot.ps_gefprot_id
					AND prj.pl_psgefprot.idfrei = 0 )
	  WHERE
		ps.gefprot.idfrei = 0
	  UNION
	  --
	  -- projektunabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefprot	----------------------------------------------------------
		--
		ps.gefprot.id
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefprot.notizen
		, NULL AS notizen_uni
		--
		--
		--
		, ps.gefprot.prt_protokoll_id
		, ps.gefprot.ps_gefszenario_id
		--
		-- --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
		--
		, 0
		, CAST( '1900-01-01' AS timestamp without time zone )
		, false
		, NULL
		, false
		, NULL
		, 0
	  FROM
		ps.gefprot
	  WHERE
		ps.gefprot.idfrei = 0

	+ CREATE OR REPLACE VIEW prj.zeige__pl_prtpsgefszenario
	AS
	  SELECT DISTINCT
		  prj.pl_prtpsgefszenario.id
		, prj.pl_prtpsgefszenario.notizen
		, prj.pl_prtpsgefszenario.logdatuhrz
		, prj.pl_prtpsgefszenario.logdqok
		, prj.pl_prtpsgefszenario.logdquelle
		, prj.pl_prtpsgefszenario.logentfernt
		, prj.pl_prtpsgefszenario.logname
		, prj.pl_prtpsgefszenario.prj_projekte_id
		, prj.pl_prtpsgefszenario.prt_protokoll_id
		, prj.pl_prtpsgefszenario.ps_gefszenario_id
	  FROM
		prj.pl_prtpsgefszenario
	  WHERE
		prj.pl_prtpsgefszenario.idfrei = 0
	;




2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefstrkt:
	- --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefstrkt	----------------------------------------------------------
		--
		 ps.gefstrkt.id AS ps__gefstrkt__id
		--
		-- projektspezifisch modifizierter Wert wird gezeigt, wenn er nicht NULL ist
		--
		, prj.pl_psgefstrkt.notizen AS notizen
		, ps.gefstrkt.notizen AS notizen_uni
		--
		--
		--
		, ps.gefstrkt.ps_gefszenario_id AS ps__gefstrkt__ps_gefszenario_id
		, ps.gefstrkt.str_strkt_id AS ps__gefstrkt__str_strkt_id
		--
		-- --	prj.pl_psgefstrkt	--------------------------------------------------
		--
		, prj.pl_psgefstrkt.id AS prj__pl_psgefstrkt__id
		, prj.pl_psgefstrkt.logdatuhrz AS prj__pl_psgefstrkt__logdatuhrz
		, prj.pl_psgefstrkt.logdqok AS prj__pl_psgefstrkt__logdqok
		, prj.pl_psgefstrkt.logdquelle AS prj__pl_psgefstrkt__logdquelle
		, prj.pl_psgefstrkt.logentfernt AS prj__pl_psgefstrkt__logentfernt
		, prj.pl_psgefstrkt.logname AS prj__pl_psgefstrkt__logname
		, prj.pl_psgefstrkt.prj_projekte_id AS prj__pl_psgefstrkt__prj_projekte_id
	  FROM
		ps.gefstrkt LEFT OUTER JOIN prj.pl_psgefstrkt ON (
					ps.gefstrkt.id = prj.pl_psgefstrkt.ps_gefstrkt_id
					AND prj.pl_psgefstrkt.idfrei = 0 )
	  WHERE
		ps.gefstrkt.idfrei = 0
	  UNION
	  --
	  -- projektunabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefstrkt	----------------------------------------------------------
		--
		 ps.gefstrkt.id
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefstrkt.notizen
		, NULL AS notizen_uni
		--
		--
		--
		, ps.gefstrkt.ps_gefszenario_id
		, ps.gefstrkt.str_strkt_id
		--
		-- --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
		--
		, 0
		, CAST( '1900-01-01' AS timestamp without time zone )
		, false
		, NULL
		, false
		, NULL
		, 0
	  FROM
		ps.gefstrkt
	  WHERE
		ps.gefstrkt.idfrei = 0
	



	
2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefanm:
	-   --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefanm	----------------------------------------------------------
		--
		 ps.gefanm.id AS ps__gefanm__id
		, prj.plu_psgefanm.notizen AS notizen
		, ps.gefanm.notizen AS notizen_uni
		, ps.gefanm.ps_gefszenario_id AS ps__gefanm__ps_gefszenario_id
		, prj.plu_psgefanm.spr_uebvar_id AS spr_uebvar_id
		, ps.gefanm.spr_uebvar_id AS spr_uebvar_id_uni
		--
		-- --	prj.plu_psgefanm	--------------------------------------------------
		--
		, prj.plu_psgefanm.id AS prj__plu_psgefanm__id
		, prj.plu_psgefanm.logdatuhrz AS prj__plu_psgefanm__logdatuhrz
		, prj.plu_psgefanm.logdqok AS prj__plu_psgefanm__logdqok
		, prj.plu_psgefanm.logdquelle AS prj__plu_psgefanm__logdquelle
		, prj.plu_psgefanm.logentfernt AS prj__plu_psgefanm__logentfernt
		, prj.plu_psgefanm.logname AS prj__plu_psgefanm__logname
		, prj.plu_psgefanm.prj_projekte_id AS prj__plu_psgefanm__prj_projekte_id
	  FROM
		ps.gefanm LEFT OUTER JOIN prj.plu_psgefanm ON (
					ps.gefanm.id = prj.plu_psgefanm.ps_gefanm_id
					AND prj.plu_psgefanm.idfrei = 0 )
	  WHERE
		ps.gefanm.idfrei = 0
	  UNION
	  --
	  -- projektunabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefanm	----------------------------------------------------------
		--
		ps.gefanm.id
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefanm.notizen
		, NULL AS notizen_uni
		--
		--
		--
		, ps.gefanm.ps_gefszenario_id
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefanm.spr_uebvar_id
		, 0 AS spr_uebvar_id_uni
		--
		-- --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
		--
		, 0
		, CAST( '1900-01-01' AS timestamp without time zone )
		, false
		, NULL
		, false
		, NULL
		, 0
	  FROM
		ps.gefanm
	  WHERE
		ps.gefanm.idfrei = 0

	+ CREATE OR REPLACE VIEW prj.zeige__pl_psgefanm
	AS
	  --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		  id
		, notizen
		, logdatuhrz
		, logdqok
		, logdquelle
		, logentfernt
		, logname
		, prj_projekte_id
		, ps_gefszenario_id
		, spr_uebvar_id
	  FROM
		prj.pl_psgefanm
	  WHERE
		prj.pl_psgefanm.idfrei = 0
	;





2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefabk:
	  --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT
		--
		-- --	ps.gefabk	----------------------------------------------------------
		--
		ps.gefabk.id AS ps__gefabk__id
		, prj.plu_psgefabk.notizen AS notizen
		, ps.gefabk.notizen AS notizen_uni
		, prj.plu_psgefabk.ps_abk_id AS ps_abk_id
		, ps.gefabk.ps_abk_id AS ps_abk_id_uni
		--
		--
		--
		, ps.gefabk.ps_gefszenario_id AS ps__gefszenario__id
		, prj.plu_psgefabk.spr_uebvar_id_zus AS spr_uebvar_id_zus
		, ps.gefabk.spr_uebvar_id_zus AS spr_uebvar_id_zus_uni
		--
		-- --	prj.plu_psgefabk	--------------------------------------------------
		--
		, prj.plu_psgefabk.id AS prj__plu_psgefabk__id
		, prj.plu_psgefabk.logdatuhrz AS prj__plu_psgefabk__logdatuhrz
		, prj.plu_psgefabk.logdqok AS prj__plu_psgefabk__logdqok
		, prj.plu_psgefabk.logdquelle AS prj__plu_psgefabk__logdquelle
		, prj.plu_psgefabk.logentfernt AS prj__plu_psgefabk__logentfernt
		, prj.plu_psgefabk.logname AS prj__plu_psgefabk__logname
		, prj.plu_psgefabk.prj_projekte_id AS prj__plu_psgefabk__prj_projekte_id
	  FROM
		ps.gefabk LEFT OUTER JOIN prj.plu_psgefabk ON ( ps.gefabk.id = prj.plu_psgefabk.ps_gefabk_id AND prj.plu_psgefabk.idfrei = 0 )
	  WHERE
		ps.gefabk.idfrei = 0
	  UNION
	  --
	  -- projektunabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.gefabk	------------------------------------------------------------------
		--
		ps.gefabk.id AS ps_gefabk_id
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefabk.notizen AS ps_gefabk_notizen
		, NULL AS notizen_uni
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefabk.ps_abk_id
		, 0 AS ps_abk_id_uni
		--
		--
		--
		, ps.gefabk.ps_gefszenario_id
		--
		-- projektspezifisch veränderbar
		--
		, ps.gefabk.spr_uebvar_id_zus AS ps_gefabk_spr_uebvar_id_zus
		, 0 AS spr_uebvar_id_zus_uni
		--
		-- --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
		--
		, 0
		, CAST( '1900-01-01' AS timestamp without time zone )
		, false
		, NULL
		, false
		, NULL
		, 0
	  FROM
		ps.gefabk
	  WHERE
		ps.gefabk.idfrei = 0
	;

	+ CREATE OR REPLACE VIEW prj.zeige__pl_psgefabk
	AS
	  --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT
		  prj.pl_psgefabk.id
		, prj.pl_psgefabk.notizen
		, prj.pl_psgefabk.logdatuhrz
		, prj.pl_psgefabk.logdqok
		, prj.pl_psgefabk.logdquelle
		, prj.pl_psgefabk.logentfernt
		, prj.pl_psgefabk.logname
		, prj.pl_psgefabk.prj_projekte_id
		, prj.pl_psgefabk.ps_abk_id
		, prj.pl_psgefabk.ps_gefszenario_id
		, prj.pl_psgefabk.spr_uebvar_id_zus
	  FROM
		prj.pl_psgefabk
	  WHERE
		prj.pl_psgefabk.idfrei = 0
	;
	
		
	
2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psabk:
	-   UNION
	  --
	  -- projektunabhängige Daten auslesen
	  --
	  SELECT DISTINCT
		--
		-- --	ps.abk	------------------------------------------------------------------
		--
		ps.abk.id AS ps_abk_id
		--
		-- projektspezifisch veränderbar
		--
		, ps.abk.notizen AS ps_abk_notizen
		, NULL AS notizen_uni
		--
		-- projektspezifisch veränderbar
		--
		, ps.abk.spr_uebvar_id
		, 0 AS spr_uebvar_id_uni
		--
		-- projektspezifisch veränderbar
		--
		, ps.abk.spr_uebvar_id_l
		, 0 AS spr_uebvar_id_l_uni
		--
		-- projektspezifisch veränderbar
		--
		, ps.abk.spr_uebvar_id_zus AS ps_abk_spr_uebvar_id_zus
		, 0 AS spr_uebvar_id_zus_uni
		--
		--
		--
		, ps.abk.typ
		--
		-- --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
		--
		, 0
		, 0
	  FROM
		ps.abk 
	  WHERE
		ps.abk.idfrei = 0

	+ CREATE OR REPLACE VIEW prj.zeige__psabk
	AS
	  --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT
		--
		-- --	ps.abk	------------------------------------------------------------------
		--
		ps.abk.id AS ps__abk__id
		, ps.abk.notizen AS ps__abk__notizen
		, ps.abk.typ AS ps__abk__typ
	
		--
		-- --	prj.p_psabk	----------------------------------------------------------
		--
		, prj.p_psabk.id AS prj__p_psabk__id
		, prj.p_psabk.notizen AS prj__p_psabk__notizen
		, prj.p_psabk.prj_projekte_id AS prj__p_psabk__prj_projekte_id
		, prj.p_psabk.spr_uebvar_id AS prj__p_psabk__spr_uebvar_id
		, prj.p_psabk.spr_uebvar_id_l AS prj__p_psabk__spr_uebvar_id_l
		, prj.p_psabk.spr_uebvar_id_zus AS prj__p_psabk__spr_uebvar_id_zus
	  FROM
		ps.abk
		, prj.p_psabk
	  WHERE
		ps.abk.id = prj.p_psabk.ps_abk_id
	  AND
		ps.abk.idfrei = 0
	  AND
		prj.p_psabk.idfrei = 0
	;



2009-11-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:

	- ELSIF(
		tabname='plu_psgefanm'
	  )
	+ ELSIF(
		tabname='pl_psgefanm'
	  )

	--
	-- pl_psgefanm
	--
	- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefanm_id'
			, 'logentfernt'
			, 'spr_uebvar_id'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];
	+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'logentfernt'
			, 'spr_uebvar_id'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];

	- ELSIF(
		tabname='pl_psgefprot'
	  )
	+ ELSIF(
		tabname='pl_prtpsgefszenario'
	  )

	--
	-- pl_prtpsgefszenario
	--
	- uGoG := ARRAY[ '2', '8' ];
	  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefprot_id'
			, 'notizen'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];
	+ --
	-- Plausibilitätsprüfung ab tabwerte[3]
	--
	IF(
		NOT( tmpInteger < 3 )
	  ) 
	THEN
		EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
					, 'prj.nimm__tabwerte(...)'
					, tabname || '.tabwerte[3]' );
	END IF;

	--
	-- Werte zuweisen
	--
	uGoG := ARRAY[ '3', '9' ];
	spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'prt_protokoll_id'
			, 'notizen'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];

	- ELSIF(
		tabname='pl_psgefstrkt'
	  )
	THEN

	--
	-- Werte zuweisen
	--
	uGoG := ARRAY[ '2', '8' ];
	spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefstrkt_id'
			, 'notizen'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];
	+ ELSIF(
		tabname='pl_psgefstrkt'
	  )
	THEN

	--
	-- Plausibilitätsprüfung ab tabwerte[3]
	--
	IF(
		NOT( tmpInteger < 3 )
	  ) 
	THEN
		EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
					, 'prj.nimm__tabwerte(...)'
					, tabname || '.tabwerte[3]' );
	END IF;

	--
	-- Werte zuweisen
	--
	uGoG := ARRAY[ '3', '9' ];
	spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'str_strkt_id'
			, 'notizen'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];

	


	


2009-11-03  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	- ELSIF(
		tabname='pu_psabk'
	  )
	+ ELSIF(
		tabname='p_psabk'
	  )

	- ELSIF(
		tabname='ppu_psgefszenario'
	  )
	+ ELSIF(
		tabname='pp_psgefszenario'
	  )

	- ELSIF(
		tabname='plu_psgefabk'
	  )
	+ ELSIF(
		tabname='pl_psgefabk'
	  )

	--
	-- pl_psgefabk
	--
	- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefabk_id'
			, 'logentfernt'
			, 'ps_abk_id'
			, 'spr_uebvar_id_zus'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];
	+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'logentfernt'
			, 'ps_abk_id'
			, 'spr_uebvar_id_zus'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];

	


2009-11-03  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- ps.nimm__gefszenario:
	+ DROP FUNCTION ps.nimm__gefszenario( tabwerte varchar[], OUT gefszenarioid varchar );



	
2009-11-03  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- ps.nimm__abk:
	+ CREATE OR REPLACE FUNCTION ps.nimm__abk( tabwerte varchar[], OUT abkid varchar ) AS
	$$
	DECLARE
	--------------------------------------------------------------------------------
	-- Konstanten
	--------------------------------------------------------------------------------
	
	
	--------------------------------------------------------------------------------
	-- lokale Variablen
	--------------------------------------------------------------------------------
	--
	-- temporäre Ganzzahlvariable(n)
	--
	tmpInteger integer;
	
	
	
	BEGIN
	
	
	
	--
	-- 1.)	Liste >tabwerte< auf Plausibilität prüfen
	--	>tabwerte[1]< muß mindestens  >1< sein.
	--	>tabwerte[2]< muß mindestens  >1< sein.
	--
	EXECUTE intern.pruefe__array( tabwerte, 2, 2
					, 'ps.nimm__abk(...)', 'tabwerte' );
	EXECUTE intern.pruefe__dt( 'zk', tabwerte[1], NULL, NULL
					, 'ps.nimm__abk(...)'
					, 'tabwerte[1]' );
	EXECUTE intern.pruefe__dt( 'zk', tabwerte[2], NULL, NULL
					, 'ps.nimm__abk(...)'
					, 'tabwerte[2]' );
	
	IF(
		( tabwerte[1] NOT IN( 'GP', 'RG', 'RH', 'RR' ) )
	  ) 
	THEN
	
		RAISE EXCEPTION 'ps.nimm__abk(...)	Als Abkürzung >tabwerte[1] = %', tabwerte[4] || '< dürfen nur die Werte >GP, RG, RH, RR< übergeben werden. Das Einlesen wird abgebrochen !';
	
	END IF;
	
	
	
	--
	-- 2.)	Tabellenwerte in >ps.abk< einlesen
	--
	EXECUTE
		'SELECT intern.nimm__zeile( ''ps.abk''
				, ARRAY[ ''typ''
					, ''notizen'' ]
				, ARRAY[''' 	|| tabwerte[1] || '''
					, '''	|| tabwerte[2] || '''])'
	INTO abkid;
	
	
	END
	$$LANGUAGE 'plpgsql'  VOLATILE;
	
	
	
2009-11-03  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	--
	-- prj.pu_psabk
	--
	ALTER TABLE prj.pu_psabk DROP CONSTRAINT pk__prj_pu_psabk_id;
	ALTER TABLE prj.pu_psabk DROP CONSTRAINT fk__prj_pu_psabk__prj_projekte_id;
	ALTER TABLE prj.pu_psabk DROP CONSTRAINT fk__prj_pu_psabk__ps_abk_id;
	ALTER TABLE prj.pu_psabk DROP CONSTRAINT fk__prj_pu_psabk__spr_uebvar_id;
	ALTER TABLE prj.pu_psabk DROP CONSTRAINT fk__prj_pu_psabk__spr_uebvar_id__l;
	ALTER TABLE prj.pu_psabk DROP CONSTRAINT fk__prj_pu_psabk__spr_uebvar_id__zus;
	ALTER TABLE prj.pu_psabk DROP CONSTRAINT uc__prj_pu_psabk;
	ALTER TABLE prj.pu_psabk RENAME TO p_psabk;
	SELECT intern.nimm__TLKommentarSTS( 'prj.p_psabk', 'Diese Tabelle dient der projektabhängigen Zuordnung der Bezeichnungen der Abkürzungen.');
	ALTER TABLE prj.p_psabk ADD CONSTRAINT pk__prj_p_psabk_id PRIMARY KEY(id);
	ALTER TABLE prj.p_psabk ADD CONSTRAINT fk__prj_p_psabk__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	ALTER TABLE prj.p_psabk ADD CONSTRAINT fk__prj_p_psabk__ps_abk_id FOREIGN KEY ( ps_abk_id ) REFERENCES ps.abk ( id );
	ALTER TABLE prj.p_psabk ADD CONSTRAINT fk__prj_p_psabk__spr_uebvar_id FOREIGN KEY ( spr_uebvar_id ) REFERENCES spr.uebvar ( 
	id );
	ALTER TABLE prj.p_psabk ADD CONSTRAINT fk__prj_p_psabk__spr_uebvar_id_l FOREIGN KEY ( spr_uebvar_id_l ) REFERENCES spr.uebvar ( id );
	ALTER TABLE prj.p_psabk ADD CONSTRAINT fk__prj_p_psabk__spr_uebvar_id_zus FOREIGN KEY ( spr_uebvar_id_zus ) REFERENCES spr.uebvar ( id );
	ALTER TABLE prj.p_psabk ADD CONSTRAINT uc__prj_p_psabk UNIQUE(idfrei, prj_projekte_id, ps_abk_id );
	
	--
	-- ps.abk
	--
	UPDATE ps.abk SET notizen = spr.zeige__wgruppe.wgruppe || ' || ' || lang.wgruppe || ' || ' || notizen
	FROM 
		spr.zeige__wgruppe
		, spr.zeige__wgruppe AS lang
	WHERE
		ps.abk.spr_uebvar_id = spr.zeige__wgruppe.spr_uebvar_id 
	AND
		spr.zeige__wgruppe.spr_sprachen_id = 1
	AND
		ps.abk.spr_uebvar_id_l = lang.spr_uebvar_id 
	AND
		lang.spr_sprachen_id = 1
	;
	ALTER TABLE ps.abk DROP COLUMN spr_uebvar_id;
	ALTER TABLE ps.abk DROP COLUMN spr_uebvar_id_l;
	ALTER TABLE ps.abk DROP COLUMN spr_uebvar_id_zus;
	SELECT intern.nimm__TLKommentarSTS( 'ps.abk', E'In dieser Tabelle werden alle im Schema \\texttt{ps} verwendeten Abkürzungen gehalten. Sie werden anhand ihres Typs (\\texttt{ps.abk.typ}) klassifiziert.' );
	SELECT intern.nimm__TLKommentarSTS( 'ps.abk.typ', E'Es ist der Typ der aktuellen Abkürzung anzugeben. Die gültigen Typen können \\texttt{ps.nimm__abk()} entnommen werden.');
	ALTER TABLE ps.abk ADD CONSTRAINT uc__ps_abk UNIQUE( idfrei, notizen, typ );
	
	--
	-- prj.pp_psgefszenario
	--
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT pk__prj_ppu_psgefszenario_id;
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT fk__prj_ppu_psgefszenario__prj_personen_id;
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT fk__prj_ppu_psgefszenario__prj_projekte_id;
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT fk__prj_ppu_psgefszenario__ps_gefszenario_id;
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT fk__prj_ppu_psgefszenario__spr_uebvar_id;
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT fk__prj_ppu_psgefszenario__spr_uebvar_id__reprgefszen;
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT fk__prj_ppu_psgefszenario__spr_uebvar_id__ursp;
	ALTER TABLE prj.ppu_psgefszenario DROP CONSTRAINT uc__prj_ppu_psgefszenario;
	ALTER TABLE prj.ppu_psgefszenario RENAME TO pp_psgefszenario;
	SELECT intern.nimm__TLKommentarSTS( 'prj.pp_psgefszenario', 'Diese Tabelle dient der projektabhängigen Zuordnung der Beschreibung des Gefahrenszenarios einschließlich Zuordnung einer Person.');
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT pk__prj_pp_psgefszenario_id PRIMARY KEY(id);
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT fk__prj_pp_psgefszenario__prj_personen_id FOREIGN KEY ( prj_personen_id ) REFERENCES prj.personen ( id );
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT fk__prj_pp_psgefszenario__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT fk__prj_pp_psgefszenario__ps_gefszenario_id FOREIGN KEY ( ps_gefszenario_id ) REFERENCES ps.gefszenario ( id );
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT fk__prj_pp_psgefszenario__spr_uebvar_id FOREIGN KEY ( spr_uebvar_id ) REFERENCES spr.uebvar ( id );
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT fk__prj_pp_psgefszenario__spr_uebvar_id_reprgefszen FOREIGN KEY ( spr_uebvar_id_reprgefszen ) REFERENCES spr.uebvar ( id );
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT fk__prj_pp_psgefszenario__spr_uebvar_id_ursp FOREIGN KEY ( spr_uebvar_id_ursp ) REFERENCES spr.uebvar ( id );
	ALTER TABLE prj.pp_psgefszenario ADD CONSTRAINT uc__prj_pp_psgefszenario UNIQUE(idfrei, prj_projekte_id, ps_gefszenario_id );
	
	--
	-- ps.gefszenario
	--
	UPDATE ps.gefszenario SET notizen = spr.zeige__wgruppe.wgruppe
	FROM 
		spr.zeige__wgruppe
	WHERE
		ps.gefszenario.spr_uebvar_id = spr.zeige__wgruppe.spr_uebvar_id 
	AND
		spr.zeige__wgruppe.spr_sprachen_id = 1
	;
	ALTER TABLE ps.gefszenario DROP COLUMN spr_uebvar_id;
	ALTER TABLE ps.gefszenario DROP COLUMN spr_uebvar_id_reprgefszen;
	ALTER TABLE ps.gefszenario DROP COLUMN spr_uebvar_id_ursp;
	SELECT intern.nimm__TLKommentarSTS( 'ps.gefszenario', E'In dieser Tabelle wird die Identifikationsnummer des Gefahrenszenarios abgelegt. In der Spalte \\texttt{ps.gefszenario.notizen} wird der Sinn des Szenarios notiert. Diese Tabelle stellt die zentrale Verbindung aller Sicherheitsaspekte dar. ');
	
	--
	-- prj.pl_psgefabk
	--
	ALTER TABLE prj.plu_psgefabk DROP CONSTRAINT pk__prj_plu_psgefabk_id;
	ALTER TABLE prj.plu_psgefabk DROP CONSTRAINT fk__prj_plu_psgefabk__prj_projekte_id;
	ALTER TABLE prj.plu_psgefabk DROP CONSTRAINT fk__prj_plu_psgefabk__ps_abk_id;
	ALTER TABLE prj.plu_psgefabk DROP CONSTRAINT fk__prj_plu_psgefabk__ps_gefabk_id;
	ALTER TABLE prj.plu_psgefabk DROP CONSTRAINT fk__prj_plu_psgefabk__spr_uebvar_id_zus;
	ALTER TABLE prj.plu_psgefabk DROP CONSTRAINT uc__prj_plu_psgefabk;
	UPDATE prj.plu_psgefabk SET ps_gefabk_id = ps_gefszenario_id
	FROM 
		ps.gefabk
	WHERE
		prj.plu_psgefabk.ps_gefabk_id = ps.gefabk.id 
	;
	ALTER TABLE prj.plu_psgefabk RENAME TO pl_psgefabk;
	ALTER TABLE prj.pl_psgefabk RENAME COLUMN ps_gefabk_id TO ps_gefszenario_id;
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefabk', E'Mittels dieser Tabelle wird die projektabhängige Logbuchfunktion für die Abkürzungen bereitgestellt, die dem aktuellen Gefahrenszenario zugeordnet sind.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefabk.ps_gefszenario_id', 'Identifikationsnummer des Gefahrenszenarios, welchem die Abkürzung zugeordnet werden soll.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefabk.ps_abk_id', 'Identifikationsnummer der Abkürzung \\texttt{ps.abk.id}.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefabk.spr_uebvar_id_zus', E'Identifikationsnummer der Übersetzungsvariante, die zusätzliche Informationen (z.B. Darstellung der Häufigkeit bzw. Gefahrenstufe bezogen auf das repräsentative Gefahrenszenario) enthält.');
	ALTER TABLE prj.pl_psgefabk ADD CONSTRAINT pk__prj_pl_psgefabk_id PRIMARY KEY(id);
	ALTER TABLE prj.pl_psgefabk ADD CONSTRAINT fk__prj_pl_psgefabk__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	ALTER TABLE prj.pl_psgefabk ADD CONSTRAINT fk__prj_pl_psgefabk__ps_abk_id FOREIGN KEY ( ps_abk_id ) REFERENCES ps.abk ( id );
	ALTER TABLE prj.pl_psgefabk ADD CONSTRAINT fk__prj_pl_psgefabk__ps_gefszenario_id FOREIGN KEY ( ps_gefszenario_id ) REFERENCES ps.gefszenario ( id );
	ALTER TABLE prj.pl_psgefabk ADD CONSTRAINT fk__prj_pl_psgefabk__spr_uebvar_id_zus FOREIGN KEY ( spr_uebvar_id_zus ) REFERENCES spr.uebvar ( id );
	ALTER TABLE prj.pl_psgefabk ADD CONSTRAINT uc__prj_pl_psgefabk UNIQUE(idfrei, prj_projekte_id, ps_abk_id, ps_gefszenario_id, logentfernt, logdatuhrz );
	
	--
	-- prj.pl_psgefanm
	--
	ALTER TABLE prj.plu_psgefanm DROP CONSTRAINT pk__prj_plu_psgefanm_id;
	ALTER TABLE prj.plu_psgefanm DROP CONSTRAINT fk__prj_plu_psgefanm__prj_projekte_id;
	ALTER TABLE prj.plu_psgefanm DROP CONSTRAINT fk__prj_plu_psgefanm__ps_gefanm_id;
	ALTER TABLE prj.plu_psgefanm DROP CONSTRAINT fk__prj_plu_psgefanm__spr_uebvar_id;
	ALTER TABLE prj.plu_psgefanm DROP CONSTRAINT uc__prj_plu_psgefanm;
	UPDATE prj.plu_psgefanm SET ps_gefanm_id = ps_gefszenario_id
	FROM 
		ps.gefanm
	WHERE
		prj.plu_psgefanm.ps_gefanm_id = ps.gefanm.id 
	;
	ALTER TABLE prj.plu_psgefanm RENAME TO pl_psgefanm;
	ALTER TABLE prj.pl_psgefanm RENAME COLUMN ps_gefanm_id TO ps_gefszenario_id;
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefanm', E'Mittels dieser Tabelle wird die projektabhängige Logbuchfunktion für die Anmerkungen bereitgestellt, die dem aktuellen Gefahrenszenario zugeordnet sind.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefanm.ps_gefszenario_id', 'Identifikationsnummer des Gefahrenszenarios, welchem die Anmerkung zugeordnet werden soll.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefanm.spr_uebvar_id', E'Identifikationsnummer der projektabhängig angepaßten Anmerkung.');
	ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT pk__prj_pl_psgefanm_id PRIMARY KEY(id);
	ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT fk__prj_pl_psgefanm__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT fk__prj_pl_psgefanm__ps_gefszenario_id FOREIGN KEY ( ps_gefszenario_id ) REFERENCES ps.gefszenario ( id );
	ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT fk__prj_pl_psgefanm__spr_uebvar_id FOREIGN KEY ( spr_uebvar_id ) REFERENCES spr.uebvar ( id );
	ALTER TABLE prj.pl_psgefanm ADD CONSTRAINT uc__prj_pl_psgefanm UNIQUE(idfrei, prj_projekte_id, ps_gefszenario_id, logentfernt, logdatuhrz );
	
	--
	-- prj.pl_prtpsgefszenario
	--
	ALTER TABLE prj.pl_psgefprot DROP CONSTRAINT pk__prj_pl_psgefprot_id;
	ALTER TABLE prj.pl_psgefprot DROP CONSTRAINT fk__prj_pl_psgefprot__prj_projekte_id;
	ALTER TABLE prj.pl_psgefprot DROP CONSTRAINT fk__prj_pl_psgefprot__ps_gefprot_id;
	ALTER TABLE prj.pl_psgefprot DROP CONSTRAINT uc__prj_pl_psgefprot;
	ALTER TABLE prj.pl_psgefprot ADD COLUMN prt_protokoll_id INT DEFAULT 0 NOT NULL;
	ALTER TABLE prj.pl_psgefprot ADD COLUMN ps_gefszenario_id INT DEFAULT 0 NOT NULL;
	UPDATE prj.pl_psgefprot SET prt_protokoll_id = ps.gefprot.prt_protokoll_id, ps_gefszenario_id = ps.gefprot.ps_gefszenario_id
	FROM 
		ps.gefprot
	WHERE
		prj.pl_psgefprot.ps_gefprot_id = ps.gefprot.id
	;
	ALTER TABLE prj.pl_psgefprot DROP COLUMN ps_gefprot_id;
	ALTER TABLE prj.pl_psgefprot RENAME TO pl_prtpsgefszenario;
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtpsgefszenario', E'Mittels dieser Tabelle wird die projektabhängige Logbuchfunktion für die Protokolleinträge bereitgestellt, die dem aktuellen Gefahrenszenario zugeordnet werden.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtpsgefszenario.prt_protokoll_id', 'Es ist die Identifikationsnummer des Protokolleintrages anzugeben, welcher dem aktuellen Gefahrenszenario zugeordnet werden soll.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtpsgefszenario.ps_gefszenario_id', 'Es ist die Identifikationsnummer des aktuellen Gefahrenszenarios anzugeben.');
	ALTER TABLE prj.pl_prtpsgefszenario ADD CONSTRAINT pk__prj_pl_prtpsgefszenario_id PRIMARY KEY(id);
	ALTER TABLE prj.pl_prtpsgefszenario ADD CONSTRAINT fk__prj_pl_prtpsgefszenario__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	ALTER TABLE prj.pl_prtpsgefszenario ADD CONSTRAINT fk__prj_pl_prtpsgefszenario__prt_protokoll_id FOREIGN KEY ( prt_protokoll_id ) REFERENCES prt.protokoll ( id );
	ALTER TABLE prj.pl_prtpsgefszenario ADD CONSTRAINT fk__prj_pl_prtpsgefszenario__ps_gefszenario_id FOREIGN KEY ( ps_gefszenario_id ) REFERENCES ps.gefszenario ( id );
	ALTER TABLE prj.pl_prtpsgefszenario ADD CONSTRAINT uc__prj_pl_prtpsgefszenario UNIQUE(idfrei, prj_projekte_id, prt_protokoll_id, ps_gefszenario_id, logentfernt, logdatuhrz );
	
	--
	-- prj.pl_psgefstrkt
	--
	ALTER TABLE prj.pl_psgefstrkt ADD COLUMN ps_gefszenario_id INT DEFAULT 0 NOT NULL;
	ALTER TABLE prj.pl_psgefstrkt ADD COLUMN str_strkt_id INT DEFAULT 0 NOT NULL;
	UPDATE prj.pl_psgefstrkt SET str_strkt_id = ps.gefstrkt.str_strkt_id, ps_gefszenario_id = ps.gefstrkt.ps_gefszenario_id
	FROM 
		ps.gefstrkt
	WHERE
		prj.pl_psgefstrkt.ps_gefstrkt_id = ps.gefstrkt.id
	;
	ALTER TABLE prj.pl_psgefstrkt DROP COLUMN ps_gefstrkt_id;
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefstrkt', E'Mittels dieser Tabelle wird die projektabhängige Logbuchfunktion für die Strukturpunkte bereitgestellt, die dem aktuellen Gefahrenszenario zugeordnet werden.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefstrkt.ps_gefszenario_id', 'Es ist die Identifikationsnummer des aktuellen Gefahrenszenarios anzugeben.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.pl_psgefstrkt.str_strkt_id', 'Es ist die Identifikationsnummer des Strukturpunktes anzugeben, welcher dem aktuellen Gefahrenszenario zugeordnet ist.');
	ALTER TABLE prj.pl_psgefstrkt ADD CONSTRAINT fk__prj_pl_psgefstrkt__ps_gefszenario_id FOREIGN KEY ( ps_gefszenario_id ) REFERENCES ps.gefszenario ( id );
	ALTER TABLE prj.pl_psgefstrkt ADD CONSTRAINT fk__prj_pl_psgefstrkt__str_strkt_id FOREIGN KEY ( str_strkt_id ) REFERENCES str.strkt ( id );
	ALTER TABLE prj.pl_psgefstrkt ADD CONSTRAINT uc__prj_pl_psgefstrkt UNIQUE(idfrei, prj_projekte_id, ps_gefszenario_id, str_strkt_id, logentfernt, logdatuhrz );




2009-10-29  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql:
	+ DROP FUNCTION kmp.nimm__komp( IN liste_werte varchar[], OUT kompid varchar );
	+ DROP FUNCTION kmp.nimm__strkt( IN tabwerte varchar[], OUT strktid varchar );


	* dbstruktur-tabellen.sql:
	+ DROP TABLE prj.p_kmpstrkt;
	+ DROP TABLE prj.ppu_kmpkomp;
	+ DROP TABLE prj.pl_psgefkomp;
	+ DROP TABLE prj.pl_psgefnetz;
	+ DROP TABLE ps.gefkomp;
	+ DROP TABLE ps.gefnetz;
	+ DROP TABLE kmp.strkt;
	+ DROP TABLE kmp.komp;

	+ DROP SCHEMA kmp;



2009-10-29  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- kmp.zeige__komp
	+ DROP VIEW kmp.zeige__komp;



2009-10-29  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	- ELSIF(
		tabname='p_kmpstrkt'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '3' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'kmp_strkt_id'
				, 'notizen'
				];


	- ELSIF(
		tabname='ppu_kmpkomp'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
	
		IF(
			NOT( tmpInteger < 5 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[5]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '3', '6' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'kmp_komp_id'
				, 'prj_personen_id'
				, 'nrfzg'
				, 'spr_uebvar_id_fzg'
				, 'notizen'
				];


	- ELSIF(
		tabname='pl_psgefkomp'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '8' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'ps_gefkomp_id'
				, 'notizen'
				, 'logentfernt'
				, 'logdatuhrz'
				, 'logdquelle'
				, 'logname'
				, 'logdqok'
				];
	
	
	- ELSIF(
		tabname='pl_psgefnetz'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '8' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'ps_gefnetz_id'
				, 'notizen'
				, 'logentfernt'
				, 'logdatuhrz'
				, 'logdquelle'
				, 'logname'
				, 'logdqok'
				];



2009-10-28  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prt.nimm__tabwerte:
	+ DROP FUNCTION prt.nimm__tabwerte( IN tabname varchar, IN tabwerte varchar[], OUT tabid varchar );


	
2009-10-28  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	+ DROP TABLE prj.p_prtkomp;
	+ DROP TABLE prt.dokausgabe;
	+ DROP TABLE prt.komp;
	+ DROP TABLE prt.strkt;
	+ DROP TABLE prt.verbindung;



2009-10-27  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__prtprotokoll
	+ DROP VIEW prj.zeige__prttabellen;
	+ DROP VIEW prj.zeige__prtprotokolltabellen;
	CREATE OR REPLACE VIEW prj.zeige__prtprotokolltabellen
	AS
	  --
	  -- projektabhängige Daten auslesen
	  --
	  SELECT
		--
		-- --	prt.protokoll	----------------------------------------------------------
		--
		prt.protokoll.id AS prt__protokoll__id
		--
		-- --	prj.p_prtstrstrkt	----------------------------------------------------------
		--
		, prj.p_prtstrstrkt.id AS prj__p_prtstrstrkt__id
		, prj.p_prtstrstrkt.notizen AS prj__p_prtstrstrkt__notizen
		, prj.p_prtstrstrkt.prj_projekte_id AS prj__p_prtstrstrkt__prj_projekte_id
		, prj.p_prtstrstrkt.str_strkt_id AS prj__p_prtstrstrkt__str_strkt_id
		--
		-- --	prj.p_prtverbindung	----------------------------------------------------------
		--
		, prj.p_prtverbindung.id AS prj__p_prtverbindung__id
		, prj.p_prtverbindung.notizen AS prj__p_prtverbindung__notizen
		, prj.p_prtverbindung.prj_projekte_id AS prj__p_prtverbindung__prj_projekte_id
		, prj.p_prtverbindung.prt_protokoll_id_nachf AS prj__p_prtverbindung__prt_protokoll_id_nachf
	  FROM
		prt.protokoll	LEFT OUTER JOIN prj.p_prtstrstrkt ON ( 
						prt.protokoll.id = prj.p_prtstrstrkt.prt_protokoll_id 
						AND prj.p_prtstrstrkt.idfrei = 0 )
				LEFT OUTER JOIN prj.p_prtverbindung ON (
				     	   	prt.protokoll.id = prj.p_prtverbindung.prt_protokoll_id_vorg 
						AND prj.p_prtverbindung.idfrei = 0 )
	  WHERE
		prt.protokoll.idfrei = 0



	
2009-10-27  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__prtprotokoll
	+ DROP VIEW prj.zeige__prtprotokoll;
	+ CREATE OR REPLACE VIEW prj.zeige__prtprotokoll
	AS
	  SELECT DISTINCT
		--
		-- --	prt.typ	------------------------------------------------------------------
		--
		prt.typ.id AS prt__typ__id
		, prt.typ.notizen AS prt__typ__notizen
		, prt.typ.aspekt AS prt__typ__aspekt
		, prt.typ.spr_uebvar_id AS prt__typ__spr_uebvar_id
		--
		-- --	prt.protokoll	----------------------------------------------------------
		--
		, prt.protokoll.id AS prt__protokoll__id
		, prt.protokoll.notizen AS prt__protokoll__notizen
		--
		-- --	prj.pp_prtprotokoll	--------------------------------------------------
		--
		, prj.pp_prtprotokoll.id AS prj__pp_prtprotokoll__id
		, prj.pp_prtprotokoll.notizen AS prj__pp_prtprotokoll__notizen
		, prj.pp_prtprotokoll.datuhrz AS prj__pp_prtprotokoll__datuhrz
		, prj.pp_prtprotokoll.duanfrage AS prj__pp_prtprotokoll__duanfrage
		, prj.pp_prtprotokoll.erledigt AS prj__pp_prtprotokoll__erledigt
		, prj.pp_prtprotokoll.intern AS prj__pp_prtprotokoll__intern
		, prj.pp_prtprotokoll.prj_personen_id AS prj__pp_prtprotokoll__prj_personen_id
		, prj.pp_prtprotokoll.prj_projekte_id AS prj__pp_prtprotokoll__prj_projekte_id
		, prj.pp_prtprotokoll.spr_uebvar_id AS prj__pp_prtprotokoll__spr_uebvar_id
		, prj.pp_prtprotokoll.teilnehmer AS prj__pp_prtprotokoll__teilnehmer
		, prj.pp_prtprotokoll.termin AS prj__pp_prtprotokoll__termin
	  FROM
		prt.typ
		, prt.protokoll LEFT OUTER JOIN prj.pp_prtprotokoll ON (
					prt.protokoll.id = prj.pp_prtprotokoll.prt_protokoll_id
					AND prj.pp_prtprotokoll.idfrei = 0 )
	  WHERE
		prt.typ.id = prt.protokoll.prt_typ_id
	  AND
		prt.protokoll.idfrei = 0
	;




2009-10-27  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	- ELSIF(
		tabname='p_prtstrkt'
	  )
	THEN
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '3' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'prt_strkt_id'
				, 'notizen'
				];

	+ ELSIF(
		tabname='p_prtstrstrkt'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		IF(
			NOT( tmpInteger < 3 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '3', '4' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'prt_protokoll_id'
				, 'str_strkt_id'
				, 'notizen'
				];


	- ELSIF(
		tabname='p_prtverbindung'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '3' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'prt_verbindung_id'
				, 'notizen'
				];


	+ ELSIF(
		tabname='p_prtverbindung'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		IF(
			NOT( tmpInteger < 3 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '3', '4' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'prt_protokoll_id_nachf'
				, 'prt_protokoll_id_vorg'
				, 'notizen'
				];


	- ELSIF(
		tabname='ppu_prtprotokoll'
	  )
	THEN

	+ ELSIF(
	tabname='pp_prtprotokoll'
	  )
	THEN


	- ELSIF(
	tabname='ppu_prtprotokoll_pers'
	  )
	THEN

	+ ELSIF(
	tabname='pp_prtprotokoll_pers'
	  )
	THEN


	- ELSIF(
		tabname='p_prtkomp'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '3' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'prt_komp_id'
				, 'notizen'
				];





2009-10-27  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	--
	-- prt.protokoll
	--
	ALTER TABLE prt.protokoll DROP COLUMN spr_uebvar_id;
	
	SELECT intern.nimm__TLKommentarSTS( 'prt.protokoll', 'Tabelle zur Verwaltung der Id''s der PE, SF, TP.');


	--
	-- prj.p_prtstrkt
	--
	ALTER TABLE prj.p_prtstrkt RENAME TO p_prtstrstrkt;
	ALTER TABLE prj.p_prtstrstrkt DROP COLUMN prt_strkt_id;
	ALTER TABLE prj.p_prtstrstrkt ADD COLUMN prt_protokoll_id INT DEFAULT 0 NOT NULL;
	ALTER TABLE prj.p_prtstrstrkt ADD COLUMN str_strkt_id INT DEFAULT 0 NOT NULL;

	SELECT intern.nimm__TLKommentarSTS( 'prj.p_prtstrstrkt.prt_protokoll_id', 'Es ist die Identifikationsnummer des PE, SF, TP anzugeben.');
	SELECT intern.nimm__TLKommentarSTS( 'prj.p_prtstrstrkt.str_strkt_id', 'Identifikationsnummer des dem PE / SF / TP projektspezifisch zugeordneten Strukturpunktes.');
	
	ALTER TABLE prj.p_prtstrstrkt ADD CONSTRAINT fk__prj_p_prtstrstrkt__prt_protokoll_id FOREIGN KEY ( prt_protokoll_id ) REFERENCES prt.protokoll ( id );
	ALTER TABLE prj.p_prtstrstrkt ADD CONSTRAINT fk__prj_p_prtstrstrkt__str_strkt_id FOREIGN KEY (str_strkt_id) REFERENCES str.strkt (id);

	ALTER TABLE prj.p_prtstrstrkt ADD CONSTRAINT uc__prj_p_prtstrstrkt UNIQUE(idfrei, prj_projekte_id, prt_protokoll_id, str_strkt_id );


	--
	-- prj.pp_prtprotokoll
	--
	ALTER TABLE prj.ppu_prtprotokoll RENAME TO pp_prtprotokoll;

	ALTER TABLE prj.pp_prtprotokoll DROP CONSTRAINT pk__prj_ppu_prtprotokoll_id;
	ALTER TABLE prj.pp_prtprotokoll ADD CONSTRAINT pk__prj_pp_prtprotokoll_id PRIMARY KEY(id);

	ALTER TABLE prj.pp_prtprotokoll DROP CONSTRAINT fk__prj_ppu_prtprotokoll__prj_personen_id;
	ALTER TABLE prj.pp_prtprotokoll DROP CONSTRAINT fk__prj_ppu_prtprotokoll__prj_projekte_id;
	ALTER TABLE prj.pp_prtprotokoll DROP CONSTRAINT fk__prj_ppu_prtprotokoll__prt_protokoll_id;
	ALTER TABLE prj.pp_prtprotokoll DROP CONSTRAINT fk__prj_ppu_prtprotokoll__spr_uebvar_id;
	ALTER TABLE prj.pp_prtprotokoll ADD CONSTRAINT fk__prj_pp_prtprotokoll__prj_personen_id FOREIGN KEY ( prj_personen_id ) REFERENCES prj.personen ( id );
	ALTER TABLE prj.pp_prtprotokoll ADD CONSTRAINT fk__prj_pp_prtprotokoll__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	ALTER TABLE prj.pp_prtprotokoll ADD CONSTRAINT fk__prj_pp_prtprotokoll__prt_protokoll_id FOREIGN KEY ( prt_protokoll_id ) REFERENCES prt.protokoll ( id );
	ALTER TABLE prj.pp_prtprotokoll ADD CONSTRAINT fk__prj_pp_prtprotokoll__spr_uebvar_id FOREIGN KEY ( spr_uebvar_id ) REFERENCES spr.uebvar ( id );

	ALTER TABLE prj.pp_prtprotokoll DROP CONSTRAINT uc__prj_ppu_prtprotokoll;
	ALTER TABLE prj.pp_prtprotokoll ADD CONSTRAINT uc__prj_pp_prtprotokoll UNIQUE(idfrei, prj_projekte_id, prt_protokoll_id, teilnehmer, prj_personen_id );

	ALTER TABLE prj.pp_prtprotokoll DROP CONSTRAINT cc__prj_ppu_prtprotokoll;
	ALTER TABLE prj.pp_prtprotokoll ADD CONSTRAINT cc__prj_pp_prtprotokoll CHECK( 
		--
		-- Nulleintrag
		--
		( id = 0 AND idfrei = 0 AND prj_personen_id = 0	AND prj_projekte_id = 0	AND prt_protokoll_id = 0 AND spr_uebvar_id = 0 )
		--
		-- gelöschter Eintrag
		--
		OR ( id > 0 AND idfrei > 0 )
		--
		-- Protokolleintrag ggf. projektspezifisch modifizieren und Randbedingungen setzen
		--
		OR ( id > 0 AND idfrei = 0 AND  prj_personen_id = 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 )
		--
		-- dem Protokolleintrag die beteiligten Personen zuordnen
		--
		OR ( id > 0 AND idfrei = 0 AND  prj_personen_id > 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 AND  spr_uebvar_id = 0 AND  teilnehmer = true )
		--
		-- der Protokolleintrag ist eine Frage / Aufgabe
		--
		OR( id > 0 AND idfrei = 0 AND prj_personen_id > 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 AND  spr_uebvar_id = 0 AND  teilnehmer = false AND  termin IS NOT NULL )
	);
	SELECT intern.nimm__TLKommentar( 'CONSTRAINT cc__prj_pp_prtprotokoll ON prj.pp_prtprotokoll', E'Dieser CHECK Constraint deckt mehrere Fälle ab:
\\\\
\\\\
\\textbf{Nulleintrag}\\\\
Wenn \\texttt{id = 0}, dann muß \\texttt{idfrei = 0}, \\texttt{prj_personen_id = 0}, \\texttt{prj_projekte_id = 0}, \\texttt{prt_protokoll_id = 0}, \\texttt{spr_uebvar_id = 0} sein.
\\\\
\\\\
\\textbf{Protokolleintrag einem Projekt zuordnen, projektspezifisch modifizieren und Randbedingungen setzen}\\\\
Wenn der Protokolleintrag einem Projekt zugeordnet oder umformuliert wird, ''Intern''/''Erledigt'' gesetzt wird oder das Datum des Erstellens des Protokolleintrages spezifiziert wird, dann muß ein Protokolleintrag (\\texttt{prt_protokoll_id > 0}) und ein Projekt (\\texttt{prj_projekte_id > 0}) zugeordnet sein. Weiterhin darf keine Person  (\\texttt{prj\_personen\_id = 0}) zugeordnet sein.
\\\\
\\\\
\\textbf{dem Protokolleintrag die beteiligten Personen zuordnen}\\\\
Wenn dem Protokolleintrag die beteiligten Personen zugeordnet werden, dann muß ein Protokolleintrag (\\texttt{prt_protokoll_id > 0}) und ein Projekt (\\texttt{prj_projekte_id > 0}) ausgewählt sein. Weiterhin muß eine Person (\\texttt{prj\_personen\_id > 0}) als beteiligte Person (\\texttt{teilnehmer = true}) gekennzeichnet und \\texttt{spr_uebvar_id = 0} sein.
\\\\
\\\\
\\textbf{der Protokolleintrag ist eine Frage / Aufgabe}\\\\
Wenn der Protokolleintrag eine Frage / Aufgabe ist, dann muß ein Protokolleintrag (\\texttt{prt_protokoll_id > 0}) und ein Projekt (\\texttt{prj_projekte_id > 0}) ausgewählt sein. Weiterhin muß eine Person (\\texttt{prj\_personen\_id > 0}) als nichtbeteiligte Person (\\texttt{teilnehmer = false}) gekennzeichnet, ein Termin (\\texttt{termin NOT NULL}) angegeben und \\texttt{spr_uebvar_id = 0} sein.
'  );




2009-10-23  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql:
	+ ALTER TABLE prj.p_dokstrkt DROP COLUMN dok_strkt_id;
	+ ALTER TABLE prj.p_dokstrkt ADD COLUMN dok_doku_id INT DEFAULT 0 NOT NULL;
	+ ALTER TABLE prj.p_dokstrkt ADD COLUMN  str_strkt_id INT DEFAULT 0 NOT NULL;
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.p_dokstrkt.dok_doku_id', 'Identifikationsnummer des aktuellen Dokumentes.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.p_dokstrkt.str_strkt_id', 'Identifikationsnummer des Strukturpunktes, welcher dem aktuellen Dokument zugeordnet ist.');
	+ ALTER TABLE prj.p_dokstrkt ADD CONSTRAINT fk__prj_p_dokstrkt__dok_doku_id FOREIGN KEY ( dok_doku_id ) REFERENCES dok.doku ( id );
	+ ALTER TABLE prj.p_dokstrkt ADD CONSTRAINT fk__prj_p_dokstrkt__str_strkt_id FOREIGN KEY (str_strkt_id) REFERENCES str.strkt (id);
	+ ALTER TABLE prj.p_dokstrkt ADD CONSTRAINT uc__prj_p_dokstrkt UNIQUE( idfrei, dok_doku_id, prj_projekte_id, str_strkt_id );

	+ ALTER TABLE dok.doku DROP COLUMN nr;
	+ ALTER TABLE dok.doku DROP COLUMN spr_uebvar_id_ttl;
	+ ALTER TABLE dok.doku ADD CONSTRAINT uc__dok_doku UNIQUE( idfrei, intern_firma_id, spr_uebvar_id_kb );

	+ DROP TABLE prj.p_prtdokausgabe;
	+ DROP TABLE prj.pp_dokausgabe;
	+ DROP TABLE prj.p_dokkomp;
	+ DROP TABLE dok.ausgabe;
	+ DROP TABLE dok.komp;
	+ DROP TABLE dok.strkt;



	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	- ELSIF(
		tabname='p_dokstrkt'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '3' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'dok_strkt_id'
				, 'notizen'
				];


	+ ELSIF(
		tabname='p_dokstrkt'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '3', '4' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'dok_doku_id'
				, 'dok_strkt_id'
				, 'notizen'
				];


	- ELSIF(
		tabname='p_prtdokausgabe'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '3' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'prt_dokausgabe_id'
				, 'notizen'
				];


	- ELSIF(
		tabname='pp_dokausgabe'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '3', '4' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'dok_ausgabe_id'
				, 'prj_personen_id'
				, 'notizen'
				];


	- IF(
		tabname = 'p_dokkomp'
	  )
	THEN
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '3' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'dok_komp_id'
				, 'notizen'
				];

	+ DROP FUNCTION dok.nimm__tabwerte( IN tabname varchar, IN tabwerte varchar[], OUT tabid varchar );



	* dbstruktur-sichten.sql --- prj.zeige__dokdoku
	- --
	- --	dok.strkt	----------------------------------------------------------
	- --
	- , dok.strkt.id AS dok__strkt__id
	- , dok.strkt.notizen AS dok__strkt__notizen
	- , dok.strkt.str_strkt_id AS dok__strkt__str_strkt_id

	- --
	- -- dok.strkt
	- --
	- LEFT OUTER JOIN dok.strkt ON ( 
	-         dok.doku.id = dok.strkt.dok_doku_id
	-     AND dok.strkt.idfrei = 0 )

	+ --
	+ -- --	prj.p_dokstrkt	----------------------------------------------------------
	+ --
	+ , prj.p_dokstrkt.id AS prj__p_dokstrkt__id
	+ , prj.p_dokstrkt.notizen AS prj__p_dokstrkt__notizen
	+ , prj.p_dokstrkt.prj_projekte_id AS prj__p_dokstrkt__prj_projekte_id
	+ , prj.p_dokstrkt.str_strkt_id AS prj__p_dokstrkt__str_strkt_id
	
	+ --
	+ -- prj.p_dokstrkt
	+ --
	+ LEFT OUTER JOIN prj.p_dokstrkt ON ( 
	+         dok.doku.id = prj.p_dokstrkt.dok_doku_id
	+     AND prj.p_dokstrkt.idfrei = 0 )




2009-10-09  Michael Bellair <bellair@freenet.de>

	* dbstruktur-tabellen.sql:
	+ ALTER TABLE prj.pl_prtdokdoku ADD COLUMN spr_uebvar_id_zus INT DEFAULT 0 NOT NULL;

	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtdokdoku.spr_uebvar_id_zus', 'Identifikationsnummer der Übersetzungsvariante, welche Zusatzinformationen wie Kapitelangaben, Verweise auf Abschnitte oder ähnliches  darstellt.');

	+ ALTER TABLE prj.pl_prtdokdoku ADD CONSTRAINT fk__prj_pl_prtdokdoku__spr_uebvar_id_zus FOREIGN KEY ( spr_uebvar_id_zus ) REFERENCES spr.uebvar ( id );



	

2009-10-08  Michael Bellair <bellair@freenet.de>

	* dbstruktur-tabellen.sql:
	+ ALTER TABLE dok.doku ADD COLUMN aspekt VARCHAR DEFAULT 'BEWEIS' NOT NULL;

	+ SELECT intern.nimm__TLKommentarSTS( 'dok.doku.aspekt', E'Klassifizierung des Dokumentes anhand der möglichen Aspekte unter denen es den Protokolleinträgen, Sicherheitsanforderungen, Terminplaneinträgen, ... zugeordnet wird.  Die möglichen Aspekte sind \\texttt{dok.nimm__doku()} zu entnehmen.');

	+ ALTER TABLE dok.doku ADD CONSTRAINT cc__dok_doku CHECK( 
		-- Die Zulässigen Aspekte absichern
		( aspekt = 'BEWEIS' OR aspekt = 'QUELLE' ) 
	);
	SELECT intern.nimm__TLKommentar( 'CONSTRAINT cc__dok_doku ON dok.doku', E'Es darf ausschließlich BEWEIS oder QUELLE angegeben werden.' );

	+ ALTER TABLE prt.typ ADD CONSTRAINT cc__prt_typ CHECK( 
		-- Die Zulässigen Aspekte absichern
		( aspekt IS NULL OR aspekt = 'PE' OR aspekt = 'SF' OR aspekt = 'TP' ) 
	);
	SELECT intern.nimm__TLKommentar( 'CONSTRAINT cc__prt_typ ON prt.typ', E'Es darf ausschließlich NULL, PE, SF, TP angegeben werden.' );



2009-10-06  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql
	+ CREATE OR REPLACE VIEW prj.zeige__pl_prtdokdoku_le
	AS
	  SELECT
		dokdoku.id AS prj__pl_prtdokdoku__id
		--
		-- Kontrolle
		--
	--	, dokdoku.dok_doku_id
	--	, dokdoku.prj_projekte_id
	--	, dokdoku.prt_protokoll_id
	--	, dokdoku.logdatuhrz
	--	, dokdoku.logentfernt
	  FROM
		prj.pl_prtdokdoku
			LEFT OUTER JOIN prj.pl_prtdokdoku AS dokdoku
				ON (
					prj.pl_prtdokdoku.dok_doku_id = dokdoku.dok_doku_id
				   AND
					prj.pl_prtdokdoku.prj_projekte_id = dokdoku.prj_projekte_id
				   AND
					prj.pl_prtdokdoku.prt_protokoll_id = dokdoku.prt_protokoll_id
				   AND
					prj.pl_prtdokdoku.idfrei = 0
				   AND
					dokdoku.idfrei = 0
				)
	  GROUP BY
		  dokdoku.id
		, dokdoku.logdatuhrz
		--
		-- Kontrolle
		--
	--	, dokdoku.dok_doku_id
	--	, dokdoku.prj_projekte_id
	--	, dokdoku.prt_protokoll_id
	--	, dokdoku.logentfernt
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_prtdokdoku.logdatuhrz ) = dokdoku.logdatuhrz
	  ORDER BY
		dokdoku.id
		--
		-- Kontrolle
		--
	--	, dokdoku.prt_protokoll_id
	--	, dokdoku.prj_projekte_id
	--	, dokdoku.dok_doku_id
	;
	SELECT intern.nimm__TLKommentarSicht( 'prj.zeige__pl_prtdokdoku_le'
	, ARRAY[
	   'prj__pl_prtdokdoku__id'
	] 
	, ARRAY[
	   E'siehe \\texttt{prj.pl_prtdokdoku.id}'
	], 
	E'Zu jeder Sicherheitsanforderung, Protokolleintrag, Terminplaneintrag (siehe Tabelle \\texttt{prt.protokoll}) werden unter Berücksichtigung  des Projektes die Identifikationsnummern  \\texttt{prj.pl_prtdokdoku.id} die zugeordneten Dokumente (siehe \\texttt{dok.doku})  angezeigt (Logbuchfunktion).' );
	
	
	
2009-10-05  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql
	+ CREATE OR REPLACE VIEW prj.zeige__pl_dokausgabe_le
	AS
	  SELECT
		dokausg.id AS prj__pl_dokausgabe__id
		--
		-- Kontrolle
		--
	--	, dokausg.dok_doku_id AS prj__pl_dokausgabe__dok_doku_id
	--	, dokausg.prj_projekte_id AS prj__pl_dokausgabe__prj_projekte_id
	--	, dokausg.logdatuhrz
	--	, dokausg.logentfernt
	  FROM
		prj.pl_dokausgabe
			LEFT OUTER JOIN prj.pl_dokausgabe AS dokausg
				ON (
					prj.pl_dokausgabe.dok_doku_id = dokausg.dok_doku_id
				   AND
					prj.pl_dokausgabe.prj_projekte_id = dokausg.prj_projekte_id
				   AND
					prj.pl_dokausgabe.idfrei = 0
				   AND
					dokausg.idfrei = 0
				)
	  GROUP BY
		  dokausg.id
		, dokausg.logdatuhrz
		--
		-- Kontrolle
		--
	--	, dokausg.dok_doku_id
	--	, dokausg.prj_projekte_id
	--	, dokausg.logentfernt
	  HAVING
		--
		-- Abfrage auf letzte Änderung beschränken 
		--
		max( prj.pl_dokausgabe.logdatuhrz ) = dokausg.logdatuhrz
	  ORDER BY
		dokausg.id
		--
		-- Kontrolle
		--
	--	, dokausg.dok_doku_id
	--	, dokausg.prj_projekte_id
	;
	SELECT intern.nimm__TLKommentarSicht( 'prj.zeige__pl_dokausgabe_le'
	, ARRAY[
	   'prj__pl_dokausgabe__id'
	] 
	, ARRAY[
	   E'siehe \\texttt{prj.pl_dokausgabe.id}'
	], 
	E'Zu jedem in der Tabelle \\texttt{prj.pl_dokausgabe} enthaltenen Dokument wird unter Berücksichtigung des Projektes die Identifikationsnummer \\texttt{prj.pl_dokausgabe.id} der jeweils letzten zugeordneten Ausgabe angezeigt (Logbuchfunktion).' );


	- prj.zeige__dokdoku
	+ CREATE OR REPLACE VIEW prj.zeige__dokdoku
	AS
	  SELECT
		--
		-- --	dok.doku	----------------------------------------------------------
		--
		dok.doku.id AS dok__doku__id
		, dok.doku.aspekt AS dok__doku__aspekt
		, dok.doku.notizen AS dok__doku__notizen
		, dok.doku.intern_firma_id AS dok__doku__intern_firma_id
		, dok.doku.spr_uebvar_id_kb AS dok__doku__spr_uebvar_id_kb
		--
		-- --	prj.pl_prtdokdoku	----------------------------------------------------------
		--
		, prj.pl_prtdokdoku.id AS prj__pl_prtdokdoku__id
		, prj.pl_prtdokdoku.prj_projekte_id AS prj__pl_prtdokdoku__prj_projekte_id
		, prj.pl_prtdokdoku.prt_protokoll_id AS prj__pl_prtdokdoku__prt_protokoll_id
		, prj.pl_prtdokdoku.nr AS prj__pl_prtdokdoku__nr
		, prj.pl_prtdokdoku.spr_uebvar_id AS prj__pl_prtdokdoku__spr_uebvar_id
		, prj.pl_prtdokdoku.spr_uebvar_id AS prj__pl_prtdokdoku__spr_uebvar_id_zus
		, prj.pl_prtdokdoku.notizen AS prj__pl_prtdokdoku__notizen
		, prj.pl_prtdokdoku.logdatuhrz AS prj__pl_prtdokdoku__logdatuhrz
		, prj.pl_prtdokdoku.logdqok AS prj__pl_prtdokdoku__logdqok
		, prj.pl_prtdokdoku.logdquelle AS prj__pl_prtdokdoku__logdquelle
		, prj.pl_prtdokdoku.logentfernt AS prj__pl_prtdokdoku__logentfernt
		, prj.pl_prtdokdoku.logname AS prj__pl_prtdokdoku__logname
		--
		-- --	prj.pl_dokausgabe	--------------------------------------------------
		--
		, prj.pl_dokausgabe.id AS prj__pl_dokausgabe__id
		, prj.pl_dokausgabe.prj_projekte_id AS prj__pl_dokausgabe__prj_projekte_id
		, prj.pl_dokausgabe.stand AS prj__pl_dokausgabe__stand
		, prj.pl_dokausgabe.datum AS prj__pl_dokausgabe__datum
		, prj.pl_dokausgabe.istfrei AS prj__pl_dokausgabe__istfrei
		, prj.pl_dokausgabe.notizen AS prj__pl_dokausgabe__notizen
		, prj.pl_dokausgabe.logdatuhrz AS prj__pl_dokausgabe__logdatuhrz
		, prj.pl_dokausgabe.logdqok AS prj__pl_dokausgabe__logdqok
		, prj.pl_dokausgabe.logdquelle AS prj__pl_dokausgabe__logdquelle
		, prj.pl_dokausgabe.logentfernt AS prj__pl_dokausgabe__logentfernt
		, prj.pl_dokausgabe.logname AS prj__pl_dokausgabe__logname
		--
		-- --	prj.ppl_dokdoku	----------------------------------------------------------
		--
		, prj.ppl_dokdoku.id AS prj__ppl_dokdoku__id
		, prj.ppl_dokdoku.prj_personen_id AS prj__ppl_dokdoku__prj_personen_id
		, prj.ppl_dokdoku.prj_projekte_id AS prj__ppl_dokdoku__prj_projekte_id
		, prj.ppl_dokdoku.notizen AS prj__ppl_dokdoku__notizen
		, prj.ppl_dokdoku.logdatuhrz AS prj__ppl_dokdoku__logdatuhrz
		, prj.ppl_dokdoku.logdqok AS prj__ppl_dokdoku__logdqok
		, prj.ppl_dokdoku.logdquelle AS prj__ppl_dokdoku__logdquelle
		, prj.ppl_dokdoku.logentfernt AS prj__ppl_dokdoku__logentfernt
		, prj.ppl_dokdoku.logname AS prj__ppl_dokdoku__logname
		--
		-- --	dok.strkt	----------------------------------------------------------
		--
		, dok.strkt.id AS dok__strkt__id
		, dok.strkt.notizen AS dok__strkt__notizen
		, dok.strkt.str_strkt_id AS dok__strkt__str_strkt_id
	  FROM
		dok.doku
			--
			-- prj.pl_prtdokdoku
			--
			LEFT OUTER JOIN prj.pl_prtdokdoku ON ( 
			         dok.doku.id = prj.pl_prtdokdoku.dok_doku_id
			     AND prj.pl_prtdokdoku.idfrei = 0 )
			--
			-- prj.pl_dokausgabe
			--
			LEFT OUTER JOIN prj.pl_dokausgabe ON ( 
			         dok.doku.id = prj.pl_dokausgabe.dok_doku_id
			     AND prj.pl_dokausgabe.idfrei = 0 )
			--
			-- prj.pl_dokausgabe
			--
			LEFT OUTER JOIN prj.ppl_dokdoku ON ( 
			         dok.doku.id = prj.ppl_dokdoku.dok_doku_id
			     AND prj.ppl_dokdoku.idfrei = 0 )
			--
			-- dok.strkt
			--
			LEFT OUTER JOIN dok.strkt ON ( 
			         dok.doku.id = dok.strkt.dok_doku_id
			     AND dok.strkt.idfrei = 0 )
	  WHERE
		dok.doku.idfrei = 0
	;
	SELECT intern.nimm__TLKommentarSicht( 'prj.zeige__dokdoku'
	, ARRAY[
	   'dok__doku__id'
	 , 'dok__doku__aspekt'
	 , 'dok__doku__notizen'
	 , 'dok__doku__intern_firma_id'
	 , 'dok__doku__spr_uebvar_id_kb'
	 , 'prj__pl_prtdokdoku__id'
	 , 'prj__pl_prtdokdoku__prj_projekte_id'
	 , 'prj__pl_prtdokdoku__prt_protokoll_id'
	 , 'prj__pl_prtdokdoku__nr'
	 , 'prj__pl_prtdokdoku__spr_uebvar_id'
	 , 'prj__pl_prtdokdoku__spr_uebvar_id_zus'
	 , 'prj__pl_prtdokdoku__notizen'
	 , 'prj__pl_prtdokdoku__logdatuhrz'
	 , 'prj__pl_prtdokdoku__logdqok'
	 , 'prj__pl_prtdokdoku__logdquelle'
	 , 'prj__pl_prtdokdoku__logentfernt'
	 , 'prj__pl_prtdokdoku__logname'
	 , 'prj__pl_dokausgabe__id'
	 , 'prj__pl_dokausgabe__prj_projekte_id'
	 , 'prj__pl_dokausgabe__stand'
	 , 'prj__pl_dokausgabe__datum'
	 , 'prj__pl_dokausgabe__istfrei'
	 , 'prj__pl_dokausgabe__notizen'
	 , 'prj__pl_dokausgabe__logdatuhrz'
	 , 'prj__pl_dokausgabe__logdqok'
	 , 'prj__pl_dokausgabe__logdquelle'
	 , 'prj__pl_dokausgabe__logentfernt'
	 , 'prj__pl_dokausgabe__logname'
	 , 'prj__ppl_dokdoku__id'
	 , 'prj__ppl_dokdoku__prj_personen_id'
	 , 'prj__ppl_dokdoku__prj_projekte_id'
	 , 'prj__ppl_dokdoku__notizen'
	 , 'prj__ppl_dokdoku__logdatuhrz'
	 , 'prj__ppl_dokdoku__logdqok'
	 , 'prj__ppl_dokdoku__logdquelle'
	 , 'prj__ppl_dokdoku__logentfernt'
	 , 'prj__ppl_dokdoku__logname'
	 , 'dok__strkt__id'
	 , 'dok__strkt__notizen'
	 , 'dok__strkt__str_strkt_id'
	] 
	, ARRAY[
	   E'siehe \\texttt{dok.doku.id}'
	 , E'siehe \\texttt{dok.doku.aspekt}'
	 , E'siehe \\texttt{dok.doku.notizen}'
	 , E'siehe \\texttt{dok.doku.intern_firma_id}'
	 , E'siehe \\texttt{dok.doku.spr_uebvar_id_kb}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.id}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.prj_projekte_id}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.prt_protokoll_id}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.nr}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.spr_uebvar_id}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.spr_uebvar_id_zus}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.notizen}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.logdatuhrz}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.logdqok}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.logdquelle}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.logentfernt}'
	 , E'siehe \\texttt{prj.pl_prtdokdoku.logname}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.id}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.prj_projekte_id}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.stand}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.datum}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.istfrei}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.notizen}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.logdatuhrz}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.logdqok}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.logdquelle}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.logentfernt}'
	 , E'siehe \\texttt{prj.pl_dokausgabe.logname}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.id}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.prj_personen_id}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.prj_projekte_id}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.notizen}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.logdatuhrz}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.logdqok}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.logdquelle}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.logentfernt}'
	 , E'siehe \\texttt{prj.ppl_dokdoku.logname}'
	 , E'siehe \\texttt{dok.strkt.id}'
	 , E'siehe \\texttt{dok.strkt.notizen}'
	 , E'siehe \\texttt{dok.strkt.str_strkt_id}'
	], 
	E'Es werden die Dokumente (siehe \\texttt{dok.doku}, \\texttt{prj.pl_prtdokdoku}, \\texttt{prj.pl_dokausgabe}, \\texttt{prj.ppl_dokdoku}) angezeigt.' );



2009-10-02  Michael Bellair <bellair@freenet.de>
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
	+ ELSIF(
		tabname='pl_dokausgabe'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		IF(
			NOT( tmpInteger < 3 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'bw', tabwerte[3], NULL, NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		END IF;
	
		--
		-- Plausibilitätsprüfung ab tabwerte[5]
		--
		IF(
			NOT( tmpInteger < 5 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'du', tabwerte[5], NULL, NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[5]' );
		END IF;
	
		--
		-- Plausibilitätsprüfung ab tabwerte[6]
		--
		IF(
			NOT( tmpInteger < 6 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'bw', tabwerte[6], NULL, NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[6]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '2', '11' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'dok_doku_id'
				, 'logentfernt'
				, 'stand'
				, 'datum'
				, 'istfrei'
				, 'notizen'
				, 'logdatuhrz'
				, 'logdquelle'
				, 'logname'
				, 'logdqok'
				];
	
	+ ELSIF(
		tabname='ppl_dokdoku'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		IF(
			NOT( tmpInteger < 3 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		END IF;
	
		--
		-- Plausibilitätsprüfung ab tabwerte[4]
		--
		IF(
			NOT( tmpInteger < 4 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'bw', tabwerte[4], NULL, NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[4]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '3', '9' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'dok_doku_id'
				, 'prj_personen_id'
				, 'logentfernt'
				, 'notizen'
				, 'logdatuhrz'
				, 'logdquelle'
				, 'logname'
				, 'logdqok'
				];
	
	
	+ ELSIF(
		tabname='pl_prtdokdoku'
	  )
	THEN
	
		--
		-- Plausibilitätsprüfung ab tabwerte[3]
		--
		IF(
			NOT( tmpInteger < 3 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		END IF;
	
		--
		-- Plausibilitätsprüfung ab tabwerte[5]
		--
		IF(
			NOT( tmpInteger < 5 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[5]' );
		END IF;
	
		--
		-- Plausibilitätsprüfung ab tabwerte[6]
		--
		IF(
			NOT( tmpInteger < 6 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'bw', tabwerte[6], NULL, NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[6]' );
		END IF;
	
		--
		-- Plausibilitätsprüfung ab tabwerte[7]
		--
		IF(
			NOT( tmpInteger < 7 )
		  ) 
		THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[7], '0', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[7]' );
		END IF;
	
		--
		-- Werte zuweisen
		--
		uGoG := ARRAY[ '5', '12' ];
		spNamen := ARRAY[
				'prj_projekte_id'
				, 'dok_doku_id'
				, 'prt_protokoll_id'
				, 'nr'
				, 'spr_uebvar_id'
				, 'logentfernt'
				, 'spr_uebvar_id_zus'
				, 'notizen'
				, 'logdatuhrz'
				, 'logdquelle'
				, 'logname'
				, 'logdqok'
				];




2009-10-01  Michael Bellair <bellair@freenet.de>

	* dbstruktur-tabellen.sql:
	+ CREATE TABLE prj.pl_dokausgabe (
		LIKE intern.allewlog INCLUDING DEFAULTS,
		datum DATE DEFAULT '1900-01-01' NOT NULL,
		dok_doku_id INT DEFAULT 0 NOT NULL,
		istfrei BOOLEAN DEFAULT true NOT NULL,
		prj_projekte_id INT DEFAULT 0 NOT NULL,
		stand VARCHAR DEFAULT '00' NOT NULL
		) 
	  WITHOUT OIDS;
	  INSERT INTO prj.pl_dokausgabe VALUES( 0 );

	+ CREATE TABLE prj.ppl_dokdoku (
		LIKE intern.allewlog INCLUDING DEFAULTS,
		dok_doku_id INT DEFAULT 0 NOT NULL,
		prj_personen_id INT DEFAULT 0 NOT NULL,	-- Ansprechpartner (ggf. verantwortlich(e) Person(en))
		prj_projekte_id INT DEFAULT 0 NOT NULL
		) 
	  WITHOUT OIDS;
	  INSERT INTO prj.ppl_dokdoku VALUES( 0 );

	+ CREATE TABLE prj.pl_prtdokdoku (
		LIKE intern.allewlog INCLUDING DEFAULTS,
		dok_doku_id INT DEFAULT 0 NOT NULL,
		nr VARCHAR,
		prj_projekte_id INT DEFAULT 0 NOT NULL,
		prt_protokoll_id INT DEFAULT 0 NOT NULL,
		spr_uebvar_id INT DEFAULT 0 NOT NULL
		) 
	  WITHOUT OIDS;
	  INSERT INTO prj.pl_prtdokdoku VALUES( 0 );

	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_dokausgabe', E'Tabelle zur Verwaltung der Ausgaben (Revisionsstände) des aktuellen Dokumentes. Mittels Logbuchfunktion kann der Wechsel der Revisionsstände verfolgt werden.');

	+ SELECT intern.nimm__TLKommentarSTS( 'prj.ppl_dokdoku', 'Diese Tabelle dient der projektabhängigen Zuordnung der Ansprechpartner (ggf. verantwortlichen Personen) zu den Dokumenten. Mittels Logbuchfunktion kann der Wechsel der Ansprechpartner verfolgt werden.');

	+ SELECT intern.nimm__TLKommentarSTS( 'prt.dokausgabe', E'Anhand dieser Tabelle werden den Protokolleinträgen / Sicherheitsanforderungen / Terminplaneinträgen  (\\texttt{prt.protokoll}) die Dokumente projektspezifisch zugeordnet.' );

	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_dokausgabe.datum', 'Datum der aktuellen Ausgabe des Dokumentes.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_dokausgabe.dok_doku_id', 'Identifikationsnummer des aktuellen Dokumentes.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_dokausgabe.istfrei', E'\\texttt{true} --- Das Dokument ist in der aktuellen Ausgabe freigegeben (nicht mehr im Entwurfsstand).');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_dokausgabe.prj_projekte_id', 'Identifikationsnummer des aktuellen Projektes.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_dokausgabe.stand', 'Revisionstand (Kennzeichen der Ausgabe) des aktellen Dokumentes.');

	+ SELECT intern.nimm__TLKommentarSTS( 'prj.ppl_dokdoku.dok_doku_id', 'Es ist die Datenbank-Identifikationsnummer des aktuellen  Dokumentes anzugeben.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.ppl_dokdoku.prj_personen_id', 'Es ist die Identifikationsnummer des Ansprechpartners (ggf. der für das Dokument verantwortlichen Person) anzugeben.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.ppl_dokdoku.prj_projekte_id', 'Identifikationsnummer des aktuellen Projektes.');

	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtdokdoku.dok_doku_id', 'Es ist die Datenbank-Identifikationsnummer des aktuellen  Dokumentes anzugeben.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtdokdoku.nr', 'Identifikationsnummer (Dokumentennummer) des Dokumentes.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtdokdoku.prj_projekte_id', 'Identifikationsnummer des aktuellen Projektes.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtdokdoku.prt_protokoll_id', 'Es ist die Identifikationsnummer des PE, SF, TP anzugeben.');
	+ SELECT intern.nimm__TLKommentarSTS( 'prj.pl_prtdokdoku.spr_uebvar_id', 'Identifikationsnummer der Übersetzungsvariante, welche den Titel des Dokumentes (Dokumententitel) darstellt.');

	+ ALTER TABLE prj.pl_dokausgabe ADD CONSTRAINT pk__prj_pl_dokausgabe_id PRIMARY KEY(id);
	+ ALTER TABLE prj.ppl_dokdoku ADD CONSTRAINT pk__prj_ppl_dokdoku_id PRIMARY KEY(id);
	+ ALTER TABLE prj.pl_prtdokdoku ADD CONSTRAINT pk__prj_pl_prtdokdoku_id PRIMARY KEY(id);

	+ ALTER TABLE prj.pl_dokausgabe ADD CONSTRAINT fk__prj_pl_dokausgabe__dok_doku_id FOREIGN KEY ( dok_doku_id ) REFERENCES dok.doku ( id );
	+ ALTER TABLE prj.pl_dokausgabe ADD CONSTRAINT fk__prj_pl_dokausgabe__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );

	+ ALTER TABLE prj.ppl_dokdoku ADD CONSTRAINT fk__prj_ppl_dokdoku__dok_doku_id FOREIGN KEY ( dok_doku_id ) REFERENCES dok.doku ( id );
	+ ALTER TABLE prj.ppl_dokdoku ADD CONSTRAINT fk__prj_ppl_dokdoku__prj_personen_id FOREIGN KEY ( prj_personen_id ) REFERENCES prj.personen ( id );
	+ ALTER TABLE prj.ppl_dokdoku ADD CONSTRAINT fk__prj_ppl_dokdoku__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );

	+ ALTER TABLE prj.pl_prtdokdoku ADD CONSTRAINT fk__prj_pl_prtdokdoku__dok_doku_id FOREIGN KEY ( dok_doku_id ) REFERENCES dok.doku ( id );
	+ ALTER TABLE prj.pl_prtdokdoku ADD CONSTRAINT fk__prj_pl_prtdokdoku__prj_projekte_id FOREIGN KEY ( prj_projekte_id ) REFERENCES prj.projekte ( id );
	+ ALTER TABLE prj.pl_prtdokdoku ADD CONSTRAINT fk__prj_pl_prtdokdoku__prt_protokoll_id FOREIGN KEY ( prt_protokoll_id ) REFERENCES prt.protokoll ( id );
	+ ALTER TABLE prj.pl_prtdokdoku ADD CONSTRAINT fk__prj_pl_prtdokdoku__spr_uebvar_id FOREIGN KEY ( spr_uebvar_id ) REFERENCES spr.uebvar ( id );

	+ ALTER TABLE prj.pl_dokausgabe ADD CONSTRAINT uc__prj_pl_dokausgabe UNIQUE(idfrei, logentfernt, logdatuhrz, dok_doku_id, prj_projekte_id );
	+ ALTER TABLE prj.ppl_dokdoku ADD CONSTRAINT uc__prj_ppl_dokdoku UNIQUE(idfrei, logentfernt, logdatuhrz, dok_doku_id, prj_personen_id, prj_projekte_id );
	+ ALTER TABLE prj.pl_prtdokdoku ADD CONSTRAINT uc__prj_pl_prtdokdoku UNIQUE(idfrei, logentfernt, logdatuhrz, dok_doku_id, prj_projekte_id, prt_protokoll_id, spr_uebvar_id );





	
2009-06-23  Michael Bellair <bellair@freenet.de>

	* dbstruktur-tabellen.sql:
		- ALTER TABLE prj.ppu_prtprotokoll ADD CONSTRAINT cc__prj_ppu_prtprotokoll CHECK( 
		  --
		  -- Nulleintrag
		  --
		  ( id = 0 AND idfrei = 0 AND prj_personen_id = 0	AND prj_projekte_id = 0	AND prt_protokoll_id = 0 AND spr_uebvar_id = 0 )
		  --
		  -- Protokolleintrag ggf. projektspezifisch modifizieren und Randbedingungen setzen
		  --
		  OR ( id > 0 AND  prj_personen_id = 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 )
		  --
		  -- dem Protokolleintrag die beteiligten Personen zuordnen
		  --
		  OR ( id > 0 AND  prj_personen_id > 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 AND  spr_uebvar_id = 0 AND  teilnehmer = true )
		  --
		  -- der Protokolleintrag ist eine Frage / Aufgabe
		  --
		  OR( id > 0 AND prj_personen_id > 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 AND  spr_uebvar_id = 0 AND  teilnehmer = false AND  termin IS NOT NULL )
);
		+ ALTER TABLE prj.ppu_prtprotokoll ADD CONSTRAINT cc__prj_ppu_prtprotokoll CHECK( 
		  --
		  -- Nulleintrag
		  --
		  ( id = 0 AND idfrei = 0 AND prj_personen_id = 0	AND prj_projekte_id = 0	AND prt_protokoll_id = 0 AND spr_uebvar_id = 0 )
		  --
		  -- gelöschter Eintrag
		  --
		  OR ( id > 0 AND idfrei > 0 )
		  --
		  -- Protokolleintrag ggf. projektspezifisch modifizieren und Randbedingungen setzen
		  --
		  OR ( id > 0 AND idfrei = 0 AND  prj_personen_id = 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 )
		  --
		  -- dem Protokolleintrag die beteiligten Personen zuordnen
		  --
		  OR ( id > 0 AND idfrei = 0 AND  prj_personen_id > 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 AND  spr_uebvar_id = 0 AND  teilnehmer = true )
		  --
		  -- der Protokolleintrag ist eine Frage / Aufgabe
		  --
		  OR( id > 0 AND idfrei = 0 AND prj_personen_id > 0 AND  prj_projekte_id > 0 AND  prt_protokoll_id > 0 AND  spr_uebvar_id = 0 AND  teilnehmer = false AND  termin IS NOT NULL )
);


	


	
2009-06-19  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql --- prj.zeige__psgefprot:
		- COALESCE( prj.pl_psgefprot.notizen, ps.gefprot.notizen ) AS notizen
		+ prj.pl_psgefprot.notizen AS notizen

	* dbstruktur-sichten.sql --- prj.zeige__psgefprot:
		- COALESCE( prj.pp_dokausgabe.notizen, dok.ausgabe.notizen ) AS ausgabe__notizen
		+ prj.pp_dokausgabe.notizen AS ausgabe__notizen

		- COALESCE( prj.p_dokstrkt.notizen, dok.strkt.notizen ) AS strkt__notizen
		+ prj.p_dokstrkt.notizen AS strkt__notizen

	* dbstruktur-sichten.sql --- prj.zeige__prttabellen:
		- COALESCE( prj.p_prtdokausgabe.notizen, prt.dokausgabe.notizen ) AS dokausgabe__notizen
		+ prj.p_prtdokausgabe.notizen AS dokausgabe__notizen

		- COALESCE( prj.p_prtstrkt.notizen, prt.strkt.notizen ) AS strkt__notizen
		+ prj.p_prtstrkt.notizen AS strkt__notizen

		- COALESCE( prj.p_prtverbindung.notizen, prt.verbindung.notizen ) AS verbindung__notizen
		+ prj.p_prtverbindung.notizen AS verbindung__notizen

	* dbstruktur-sichten.sql --- prj.zeige__prttabellen:
		- COALESCE( prj.pl_psgefstrkt.notizen, ps.gefstrkt.notizen ) AS notizen
		+ prj.pl_psgefstrkt.notizen AS notizen




2009-06-16  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql
		- CREATE TABLE intern.alle (
			id INT DEFAULT 0 NOT NULL,
			idfrei INT DEFAULT 0 NOT NULL,
			notizen;
		  ) WITHOUT OIDS;
		+ CREATE TABLE intern.alle (
			id INT DEFAULT 0 NOT NULL,
			idfrei INT DEFAULT 0 NOT NULL,
			notizen VARCHAR SET DEFAULT '-- bleibt leer --' NOT NULL;
		  ) WITHOUT OIDS;

	
		+ ALTER TABLE dok.ausgabe ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE dok.doku ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE dok.komp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE dok.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE intern.alle ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE intern.allewlog ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE intern.firma ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE kmp.komp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE kmp.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.p_dokkomp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.pl_psgefprot ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.p_prtkomp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.ppu_strstrkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.p_dokstrkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.pl_psgefstrkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.p_prtstrkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.projekte ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.personen ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.plu_psgefabk ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.p_prtverbindung ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.pu_psabk ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.p_kmpstrkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.plu_psgefanm ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.ppu_kmpkomp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.pu_strverbindung ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.pl_psgefkomp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.pp_dokausgabe ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.ppu_prtprotokoll ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.pl_psgefnetz ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.p_prtdokausgabe ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prj.ppu_psgefszenario ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.dokausgabe ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.komp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.protokoll ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.typ ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.verbindung ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.abk ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefanm ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefnetz ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefstrkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefabk ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefkomp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefprot ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefszenario ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE spr.sprachen ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE spr.uebersetzung ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE spr.uebvar ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE spr.wgruppe ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE str.name ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE str.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE str.verbindung ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE tl.befehl ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE tl.datei ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE tl.wort ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';


		+ UPDATE dok.ausgabe SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE dok.doku SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE dok.komp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE dok.strkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE intern.alle SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE intern.allewlog SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE intern.firma SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE kmp.komp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE kmp.strkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.p_dokkomp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.pl_psgefprot SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.p_prtkomp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.ppu_strstrkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.p_dokstrkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.pl_psgefstrkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.p_prtstrkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.projekte SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.personen SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.plu_psgefabk SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.p_prtverbindung SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.pu_psabk SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.p_kmpstrkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.plu_psgefanm SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.ppu_kmpkomp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.pu_strverbindung SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.pl_psgefkomp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.pp_dokausgabe SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.ppu_prtprotokoll SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.pl_psgefnetz SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.p_prtdokausgabe SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prj.ppu_psgefszenario SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prt.dokausgabe SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prt.komp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prt.protokoll SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prt.strkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prt.typ SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE prt.verbindung SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.abk SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.gefanm SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.gefnetz SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.gefstrkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.gefabk SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.gefkomp SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.gefprot SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE ps.gefszenario SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE spr.sprachen SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE spr.uebersetzung SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE spr.uebvar SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE spr.wgruppe SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE str.name SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE str.strkt SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE str.verbindung SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE tl.befehl SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE tl.datei SET notizen = DEFAULT WHERE notizen IS NULL;
		+ UPDATE tl.wort SET notizen = DEFAULT WHERE notizen IS NULL;


		+ ALTER TABLE dok.ausgabe ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE dok.doku ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE dok.komp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE dok.strkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE intern.alle ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE intern.allewlog ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE intern.firma ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE kmp.komp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE kmp.strkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.p_dokkomp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.pl_psgefprot ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.p_prtkomp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.ppu_strstrkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.p_dokstrkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.pl_psgefstrkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.p_prtstrkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.projekte ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.personen ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.plu_psgefabk ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.p_prtverbindung ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.pu_psabk ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.p_kmpstrkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.plu_psgefanm ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.ppu_kmpkomp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.pu_strverbindung ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.pl_psgefkomp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.pp_dokausgabe ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.ppu_prtprotokoll ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.pl_psgefnetz ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.p_prtdokausgabe ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prj.ppu_psgefszenario ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prt.dokausgabe ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prt.komp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prt.protokoll ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prt.strkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prt.typ ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE prt.verbindung ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.abk ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.gefanm ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.gefnetz ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.gefstrkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.gefabk ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.gefkomp ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.gefprot ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE ps.gefszenario ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE spr.sprachen ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE spr.uebersetzung ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE spr.uebvar ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE spr.wgruppe ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE str.name ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE str.strkt ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE str.verbindung ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE tl.befehl ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE tl.datei ALTER COLUMN notizen SET NOT NULL;
		+ ALTER TABLE tl.wort ALTER COLUMN notizen SET NOT NULL;


		+ ALTER TABLE intern.abczk ALTER COLUMN notizen DROP DEFAULT;
		+ ALTER TABLE intern.abczk ALTER COLUMN notizen DROP NOT NULL;

	
		+ ALTER TABLE intern.restzk ALTER COLUMN notizen DROP DEFAULT;
		+ ALTER TABLE intern.restzk ALTER COLUMN notizen DROP NOT NULL;

	
		+ ALTER TABLE spr.pos ALTER COLUMN notizen DROP DEFAULT;
		+ ALTER TABLE spr.pos ALTER COLUMN notizen DROP NOT NULL;

	
		+ ALTER TABLE tl.pos ALTER COLUMN notizen DROP DEFAULT;
		+ ALTER TABLE tl.pos ALTER COLUMN notizen DROP NOT NULL;


	
2009-06-15  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql --- prj.zeige__strstrkt:
		- COALESCE( prj.ppu_strstrkt.notizen, str.strkt.notizen ) AS strkt__notizen
		+ prj.ppu_strstrkt.notizen AS strkt__notizen

		- COALESCE( prj.ppu_strstrkt.notizen, str.strkt.fbereignis ) AS strkt__fbereignis
		+ prj.ppu_strstrkt.notizen AS strkt__fbereignis

		- CASE WHEN( prj.ppu_strstrkt.spr_uebvar_id > 0 ) 
			THEN prj.ppu_strstrkt.spr_uebvar_id
			ELSE str.strkt.spr_uebvar_id
			END AS spr_uebvar_id
		+ prj.ppu_strstrkt.spr_uebvar_id AS spr_uebvar_id

		- COALESCE( prj.pu_strverbindung.notizen, str.verbindung.notizen ) AS verbindung__notizen
		+ prj.pu_strverbindung.notizen AS verbindung__notizen

		- COALESCE( prj.pu_strverbindung.fbtor, str.verbindung.fbtor ) AS verbindung__fbtor
		+ prj.pu_strverbindung.fbtor AS verbindung__fbtor


	
	* dbstruktur-sichten.sql --- prj.zeige__prtprotokoll:
		- COALESCE( prj.ppu_prtprotokoll.notizen, prt.protokoll.notizen ) AS protokoll__notizen
		+ prj.ppu_prtprotokoll.notizen AS protokoll__notizen

		- CASE WHEN( prj.ppu_prtprotokoll.spr_uebvar_id > 0 ) 
			THEN prj.ppu_prtprotokoll.spr_uebvar_id
			ELSE prt.protokoll.spr_uebvar_id
			END AS protokoll__spr_uebvar_id
		+ prj.ppu_prtprotokoll.spr_uebvar_id AS protokoll__spr_uebvar_id


	
	* dbstruktur-sichten.sql --- prj.zeige__psgefszenario:
		- COALESCE( prj.ppu_psgefszenario.notizen, ps.gefszenario.notizen ) AS notizen
		+ prj.ppu_psgefszenario.notizen AS notizen

		- CASE WHEN( prj.ppu_psgefszenario.spr_uebvar_id > 0 ) 
			THEN prj.ppu_psgefszenario.spr_uebvar_id
			ELSE ps.gefszenario.spr_uebvar_id
			END AS spr_uebvar_id
		+ prj.ppu_psgefszenario.spr_uebvar_id AS spr_uebvar_id

		- CASE WHEN( prj.ppu_psgefszenario.spr_uebvar_id_reprgefszen > 0 ) 
			THEN prj.ppu_psgefszenario.spr_uebvar_id_reprgefszen
			ELSE ps.gefszenario.spr_uebvar_id_reprgefszen
			END AS spr_uebvar_id_reprgefszen
		+ prj.ppu_psgefszenario.spr_uebvar_id_reprgefszen AS spr_uebvar_id_reprgefszen

		- CASE WHEN( prj.ppu_psgefszenario.spr_uebvar_id_ursp > 0 ) 
			THEN prj.ppu_psgefszenario.spr_uebvar_id_ursp
			ELSE ps.gefszenario.spr_uebvar_id_ursp
			END AS spr_uebvar_id_ursp
		+ prj.ppu_psgefszenario.spr_uebvar_id_ursp AS spr_uebvar_id_ursp


	
	* dbstruktur-sichten.sql --- prj.zeige__psgefanm:
		- COALESCE( prj.plu_psgefanm.notizen, ps.gefanm.notizen ) AS notizen
		+ prj.plu_psgefanm.notizen AS notizen

		- CASE WHEN( prj.plu_psgefanm.spr_uebvar_id > 0 ) 
			THEN prj.plu_psgefanm.spr_uebvar_id
			ELSE ps.gefanm.spr_uebvar_id
			END AS spr_uebvar_id
		+ prj.plu_psgefanm.spr_uebvar_id AS spr_uebvar_id


	
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		- IF(
		   ( ( tabname='pl_psgefkomp' OR tabname='pl_psgefnetz' OR tabname='pl_psgefprot'
			OR tabname='pl_psgefstrkt' ) AND ( tmpInteger < 4 ) )
			OR ( tabname='plu_psgefabk' AND ( tmpInteger < 6 ) )
			OR ( tabname='plu_psgefanm' AND ( tmpInteger < 5 ) )
		    ) 
		  THEN

	
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='pl_psgefkomp'):
		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefkomp_id'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefkomp_id'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='pl_psgefnetz'):
		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefnetz_id'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefnetz_id'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='pl_psgefprot'):
		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefprot_id'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefprot_id'
			, 'notizen'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='pl_psgefstrkt'):
		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefstrkt_id'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefstrkt_id'
			, 'notizen'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='plu_psgefabk'):
		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefabk_id'
			, 'logentfernt'
			, 'ps_abk_id'
			, 'spr_uebvar_id_zus'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefabk_id'
			, 'logentfernt'
			, 'ps_abk_id'
			, 'spr_uebvar_id_zus'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='plu_psgefanm'):
		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefanm_id'
			, 'logentfernt'
			, 'spr_uebvar_id'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefanm_id'
			, 'logentfernt'
			, 'spr_uebvar_id'
			, 'notizen'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			];



2009-06-08  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql --- prj.zeige__psgefabk:
		- COALESCE( prj.plu_psgefabk.notizen, ps.gefabk.notizen ) AS notizen
		+ prj.plu_psgefabk.notizen AS notizen

		- CASE WHEN( prj.plu_psgefabk.ps_abk_id > 0 ) 
			THEN prj.plu_psgefabk.ps_abk_id
			ELSE ps.gefabk.ps_abk_id
			END AS ps_abk_id
		+ ps.gefabk.ps_abk_id AS ps_abk_id_uni

		- CASE WHEN( prj.plu_psgefabk.spr_uebvar_id_zus > 0 ) 
			THEN prj.plu_psgefabk.spr_uebvar_id_zus
			ELSE ps.gefabk.spr_uebvar_id_zus
			END AS spr_uebvar_id_zus
		+ ps.gefabk.spr_uebvar_id_zus AS spr_uebvar_id_zus_uni

	* dbstruktur-sichten.sql --- prj.zeige__psgefabk:
		- COALESCE( prj.pu_psabk.notizen, ps.abk.notizen ) AS notizen
		+ prj.pu_psabk.notizen AS notizen

		- CASE WHEN( prj.pu_psabk.spr_uebvar_id > 0 ) 
			THEN prj.pu_psabk.spr_uebvar_id
			ELSE ps.abk.spr_uebvar_id
			END AS spr_uebvar_id
		+ prj.pu_psabk.spr_uebvar_id AS spr_uebvar_id

		- CASE WHEN( prj.pu_psabk.spr_uebvar_id_l > 0 ) 
			THEN prj.pu_psabk.spr_uebvar_id_l
			ELSE ps.abk.spr_uebvar_id_l
			END AS spr_uebvar_id_l
		+ prj.pu_psabk.spr_uebvar_id_l AS spr_uebvar_id_l

		- CASE WHEN( prj.pu_psabk.spr_uebvar_id_zus > 0 ) 
			THEN prj.pu_psabk.spr_uebvar_id_zus
			ELSE ps.abk.spr_uebvar_id_zus
			END AS spr_uebvar_id_zus
		+ prj.pu_psabk.spr_uebvar_id_zus AS spr_uebvar_id_zus



2009-04-23  Michael Bellair <bellair@freenet.de>
	* dbstruktur-tabellen.sql
		+ ALTER TABLE dok.ausgabe ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE dok.doku ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE dok.komp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE dok.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE kmp.komp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE kmp.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.dokausgabe ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.komp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.protokoll ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.typ ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE prt.verbindung ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.abk ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefanm ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefnetz ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefstrkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefabk ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefkomp ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefprot ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE ps.gefszenario ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE spr.sprachen ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE spr.uebvar ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE str.name ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE str.strkt ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE str.verbindung ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE tl.befehl ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE tl.datei ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';
		+ ALTER TABLE tl.wort ALTER COLUMN notizen SET DEFAULT '-- bleibt leer --';

		+ UPDATE dok.ausgabe SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE dok.doku SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE dok.komp SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE dok.strkt SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE kmp.komp SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE kmp.strkt SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE prt.dokausgabe SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE prt.komp SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE prt.protokoll SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE prt.strkt SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE prt.typ SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE prt.verbindung SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.abk SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.gefanm SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.gefnetz SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.gefstrkt SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.gefabk SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.gefkomp SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.gefprot SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE ps.gefszenario SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE spr.sprachen SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE spr.uebvar SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE str.name SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE str.strkt SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE str.verbindung SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE tl.befehl SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE tl.datei SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;
		+ UPDATE tl.wort SET notizen = '-- bleibt leer --' WHERE notizen IS NULL;


	
2009-03-27  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql --- spr.zeige__wgelemente:
		+ spr_uebersetzung_id

	* dbstruktur-sichten.sql --- spr.spr.zeige__wgruppe:
		+ spr_uebersetzung_id



2009-03-13  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- tl.nimm__datei
		- EXECUTE intern.loesche__zeile( tabName, tabName || '.id = ' || tabNameId );
		+ EXECUTE intern.loesche__zeile( tabName, tabName || '.id = ' || tabNameId, 'true' );



2009-03-12  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- intern.loesche__zeile:
		+ , IN beachteRI varchar

		+ --
		  --	- Es muß ein Boolescher Wert übergeben werden
		  --
		  EXECUTE intern.pruefe__dt( 'bw', beachteRI, NULL, NULL
					, 'intern.loesche__zeile(...)'
					, 'beachteRI' );

		  tmpBeachteRI := CAST( beachteRI AS Boolean );

		- IF(
			( tmpVarchar_2 != '' )
		  )
		  THEN

			RAISE EXCEPTION 'intern.loesche__zeile(...)	Die in der uebergebenen Tabelle >%', tabName || '< enthaltene(n) Zeile(n) zur Bedingung >' || ltrim( sql_where_intern, ' AND ' ) || '< werden von der (den) Tabelle(n) >' || ltrim( tmpVarchar_2, ', ' ) || '< verwendet. Das Loeschen der Zeile wird nicht durchgefuehrt (referentielle Integritaet wird sichergestellt) !';

		  END IF;
		+ IF(
			( tmpVarchar_2 != '' ) AND tmpBeachteRI
		  )
		  THEN

			RAISE EXCEPTION 'intern.loesche__zeile(...)	Die in der uebergebenen Tabelle >%', tabName || '< enthaltene(n) Zeile(n) zur Bedingung >' || ltrim( sql_where_intern, ' AND ' ) || '< werden von der (den) Tabelle(n) >' || ltrim( tmpVarchar_2, ', ' ) || '< verwendet. Das Loeschen der Zeile wird nicht durchgefuehrt (referentielle Integritaet wird sichergestellt) !';

		  END IF;

	* dbstruktur-funktionen.sql --- intern.nimm__zeile:
		- EXECUTE intern.loesche__zeile( tabName, tabName || '.id = ' || tabNameId );
		+ EXECUTE intern.loesche__zeile( tabName, tabName || '.id = ' || tabNameId, 'false' );


2009-03-10  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		- EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '0', NULL

		- EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '0', NULL

		- EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '1', NULL
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '0', NULL

		- EXECUTE intern.pruefe__dt( 'gz', tabwerte[6], '1', NULL
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[6], '0', NULL

	* dbstruktur-tabellen.sql
		- ALTER TABLE prj.ppu_psgefszenario ADD CONSTRAINT uc__prj_ppu_psgefszenario UNIQUE(idfrei, prj_personen_id, prj_projekte_id, ps_gefszenario_id );
		+ ALTER TABLE prj.ppu_psgefszenario ADD CONSTRAINT uc__prj_ppu_psgefszenario UNIQUE(idfrei, prj_projekte_id, ps_gefszenario_id );


	
2009-02-04  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__psgefanm:
		+ notizen_uni
		+ spr_uebvar_id_uni

	* dbstruktur-sichten.sql --- prj.zeige__psgefprot:
		+ notizen_uni

	* dbstruktur-sichten.sql --- prj.zeige__psgefstrkt:
		+ notizen_uni

	* dbstruktur-sichten.sql --- prj.zeige__psgefszenario:
		+ notizen_uni
		+ spr_uebvar_id_uni
		+ spr_uebvar_id_reprgefszen_uni
		+ spr_uebvar_id_ursp_uni

	* dbstruktur-sichten.sql --- prj.zeige__strstrkt:
		+ strkt__notizen_uni
		+ strkt__fbereignis_uni
		+ spr_uebvar_id_uni
		+ verbindung__notizen_uni
		+ verbindung__fbtor_uni


	
2009-02-03  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__dokdoku:
		+ ausgabe__notizen_uni
		+ strkt__notizen_uni

	* dbstruktur-sichten.sql --- prj.zeige__prtprotokoll:
		+ protokoll__notizen_uni
		+ protokoll__spr_uebvar_id_uni

	* dbstruktur-sichten.sql --- prj.zeige__prttabellen:
		+ dokausgabe__notizen_uni
		+ strkt__notizen_uni
		+ verbindung__notizen_uni

	* dbstruktur-sichten.sql --- prj.zeige__psabk:
		+ notizen_uni
		+ spr_uebvar_id_uni
		+ spr_uebvar_id_uni_l
		+ spr_uebvar_id_uni_zus

	* dbstruktur-sichten.sql --- prj.zeige__psgefabk:
		+ notizen_uni
		+ ps_abk_id_uni
		+ spr_uebvar_id_zus_uni


2009-01-05  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql:
		+ prj.zeige__psgefstrkt_le
		+ prj.zeige__psgefabk_le
		+ prj.zeige__psgefanm_le


2008-12-22  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql:
		+ prj.zeige__psgefprot_le


2008-12-19  Michael Bellair <bellair@freenet.de>
	* dbstruktur-sichten.sql --- prj.zeige__prttabellen:
		- prt__verbindung__prt_protokoll_id_vb
		- prt__verbindung__prt_protokoll_id_nachf


	* dbstruktur-funktionen.sql --- prt.nimm__tabwerte:
		- spNamen := 'prt_protokoll_id_vb';
		+ spNamen := 'prt_protokoll_id_nachf';

		- 'SELECT intern.nimm__zeile( ''prt.' || tabname || '''
			, ARRAY[ ''prt_protokoll_id''
		+ 'SELECT intern.nimm__zeile( ''prt.' || tabname || '''
			, ARRAY[ ''prt_protokoll_id' 
			  	|| CASE WHEN( tabname='verbindung' ) THEN '_vorg''' ELSE '''' END || '


	* dbstruktur-tabellen.sql --- prt.verbindung:
		- prt_protokoll_id
		+ prt_protokoll_id_nachf

		- prt_protokoll_id_vb
		+ prt_protokoll_id_vorg

		- fk__prt_verbindung__prt_protokoll_id
		+ fk__prt_verbindung__prt_protokoll_id_nachf

		- fk__prt_verbindung__prt_protokoll_id_vb
		+ fk__prt_verbindung__prt_protokoll_id_vorg
	

2008-12-18  Michael Bellair <bellair@freenet.de>
	
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		- ELSIF(
		  	tabname='ppu_prtprotokoll'
		    )
		  THEN
		  
		  	--
		  	-- Plausibilitätsprüfung ab tabwerte[3]
		  	--
		  	IF(
		  		NOT( tmpInteger < 3 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[3]' );
		  	END IF;
		  
		  	IF(
		  		NOT( tmpInteger < 10 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'gz', tabwerte[10], '1', NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[10]' );
		  	END IF;
		  
		  	--
		  	-- Werte zuweisen
		  	--
		  	uGoG := ARRAY[ '2', '11' ];
		  	spNamen := ARRAY[
		  			'prj_projekte_id'
		  			, 'prt_protokoll_id'
		  			, 'prj_personen_id'
		  			, 'teilnehmer'
		  			, 'datuhrz'
		  			, 'duanfrage'
		  			, 'termin'
		  			, 'intern'
		  			, 'erledigt'
		  			, 'spr_uebvar_id'
		  			, 'notizen'
		  			];
		+ ELSIF(
		  	tabname='ppu_prtprotokoll'
		    )
		  THEN
		  
		  	--
		  	-- Plausibilitätsprüfung ab tabwerte[3]
		  	--
		  	IF(
		  		NOT( tmpInteger < 3 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '0', NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[3]' );
		  	END IF;
		  
		  	IF(
		  		NOT( tmpInteger < 4 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'du', tabwerte[4], NULL, NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[4]' );
		  	END IF;
		  
		  	IF(
		  		NOT( tmpInteger < 5 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'bw', tabwerte[5], NULL, NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[5]' );
		  	END IF;
		  
		  	IF(
		  		NOT( tmpInteger < 6 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'bw', tabwerte[6], NULL, NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[6]' );
		  	END IF;
		  
		  	--
		  	-- Werte zuweisen
		  	--
		  	uGoG := ARRAY[ '2', '7' ];
		  	spNamen := ARRAY[
		  			'prj_projekte_id'
		  			, 'prt_protokoll_id'
		   			, 'spr_uebvar_id'
		  			, 'datuhrz'
		  			, 'intern'
		  			, 'erledigt'
		  			, 'notizen'
		  			];

		+ ELSIF(
		  	tabname='ppu_prtprotokoll_pers'
		    )
		  THEN
		  
		  	--
		  	-- Plausibilitätsprüfung ab tabwerte[3]
		  	--
		  	IF(
		  		NOT( tmpInteger < 3 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'bw', tabwerte[3], NULL, NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[3]' );
		  	END IF;
		  
		  	IF(
		  		NOT( tmpInteger < 4 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[4]' );
		  	END IF;
		  
		  	IF(
		  		NOT( tmpInteger < 5 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'du', tabwerte[5], NULL, NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[5]' );
		  	END IF;
		  
		  	IF(
		  		NOT( tmpInteger < 6 )
		  	  ) 
		  	THEN
		  		EXECUTE intern.pruefe__dt( 'du', tabwerte[6], NULL, NULL
		  					, 'prj.nimm__tabwerte(...)'
		  					, tabname || '.tabwerte[6]' );
		  	END IF;
		  
		  	--
		  	-- Teilnehmer / Frage behandeln
		  	--
		  	IF(
		  		( tmpInteger > 4 )
		  		AND ( CAST( tabwerte[3] AS boolean ) = true )
		  	  ) 
		  	THEN
		  		RAISE EXCEPTION 'prj.nimm__tabwerte(...)	Wenn >tabwerte[3] = true< ist, darf >tabwerte[5]< und >tabwerte[6]< nicht angegeben werden. Das Einlesen wird abgebrochen !';
		  	END IF;
		  
		  	IF(
		  		( tmpInteger > 3 )
		  		AND ( tmpInteger < 5 )
		  		AND ( CAST( tabwerte[3] AS boolean ) = false )
		  	  ) 
		  	THEN
		  		RAISE EXCEPTION 'prj.nimm__tabwerte(...)	Wenn >tabwerte[3] = false< ist, muß >tabwerte[5]< angegeben werden. Das Einlesen wird abgebrochen !';
		  	END IF;
		  
		  
		  	--
		  	-- Werte zuweisen
		  	--
		  	uGoG := ARRAY[ '4', '7' ];
		  	spNamen := ARRAY[
		  			'prj_projekte_id'
		  			, 'prt_protokoll_id'
		  			, 'teilnehmer'
		  			, 'prj_personen_id'
		  			, 'termin'
		  			, 'duanfrage'
		  			, 'notizen'
		  			];


		- EXECUTE
			'SELECT intern.nimm__zeile( ''prj.' || tabname
		+ EXECUTE
			'SELECT intern.nimm__zeile( ''prj.' 
				|| CASE WHEN( tabname = 'ppu_prtprotokoll_pers' ) 
					THEN 'ppu_prtprotokoll' ELSE tabname END



2008-12-17  Michael Bellair <bellair@freenet.de>
	
	* dbstruktur-tabellen.sql --- prj.ppu_prtprotokoll:
		+ cc__prj_ppu_prtprotokoll

		- uc__prj_ppu_prtprotokoll
		+ ALTER TABLE prj.ppu_prtprotokoll ADD CONSTRAINT uc__prj_ppu_prtprotokoll UNIQUE(idfrei, prj_projekte_id, prt_protokoll_id, teilnehmer, prj_personen_id );

		. ALTER TABLE prj.ppu_prtprotokoll ALTER teilnehmer DROP DEFAULT;
		. ALTER TABLE prj.ppu_prtprotokoll ALTER teilnehmer DROP NOT NULL;


2008-12-05  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql:
		+ ps.zeige__risikomatrix_en50126


2008-11-21  Michael Bellair <bellair@freenet.de>
	
	* dbstruktur-tabellen.sql:
		- ALTER TABLE prj.plu_psgefabk ADD CONSTRAINT uc__prj_plu_psgefabk UNIQUE(idfrei, prj_projekte_id, ps_abk_id, ps_gefabk_id, logentfernt );
		+ ALTER TABLE prj.plu_psgefabk ADD CONSTRAINT uc__prj_plu_psgefabk UNIQUE(idfrei, prj_projekte_id, ps_abk_id, ps_gefabk_id, logentfernt, logdatuhrz );

		- ALTER TABLE prj.plu_psgefanm ADD CONSTRAINT uc__prj_plu_psgefanm UNIQUE(idfrei, prj_projekte_id, ps_gefanm_id, logentfernt );
		+ ALTER TABLE prj.plu_psgefanm ADD CONSTRAINT uc__prj_plu_psgefanm UNIQUE(idfrei, prj_projekte_id, ps_gefanm_id, logentfernt, logdatuhrz );

		- ALTER TABLE prj.pl_psgefkomp ADD CONSTRAINT uc__prj_pl_psgefkomp UNIQUE(idfrei, prj_projekte_id, ps_gefkomp_id );
		+ ALTER TABLE prj.pl_psgefkomp ADD CONSTRAINT uc__prj_pl_psgefkomp UNIQUE(idfrei, prj_projekte_id, ps_gefkomp_id, logdatuhrz );

		- ALTER TABLE prj.pl_psgefnetz ADD CONSTRAINT uc__prj_pl_psgefnetz UNIQUE(idfrei, prj_projekte_id, ps_gefnetz_id );
		+ ALTER TABLE prj.pl_psgefnetz ADD CONSTRAINT uc__prj_pl_psgefnetz UNIQUE(idfrei, prj_projekte_id, ps_gefnetz_id, logdatuhrz );

		- ALTER TABLE prj.pl_psgefprot ADD CONSTRAINT uc__prj_pl_psgefprot UNIQUE(idfrei, prj_projekte_id, ps_gefprot_id, logentfernt );
		+ ALTER TABLE prj.pl_psgefprot ADD CONSTRAINT uc__prj_pl_psgefprot UNIQUE(idfrei, prj_projekte_id, ps_gefprot_id, logentfernt, logdatuhrz );

		- ALTER TABLE prj.pl_psgefstrkt ADD CONSTRAINT uc__prj_pl_psgefstrkt UNIQUE(idfrei, prj_projekte_id, ps_gefstrkt_id, logentfernt );
		+ ALTER TABLE prj.pl_psgefstrkt ADD CONSTRAINT uc__prj_pl_psgefstrkt UNIQUE(idfrei, prj_projekte_id, ps_gefstrkt_id, logentfernt, logdatuhrz );

	
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		+ tabwerteIntern varchar[];
		+ tabwerteIntern := tabwerte;

		+ IF(
			( ( tabname='pl_psgefkomp' OR tabname='pl_psgefnetz' OR tabname='pl_psgefprot'
			OR tabname='pl_psgefstrkt' ) AND ( tmpInteger < 4 ) )
			OR ( tabname='plu_psgefabk' AND ( tmpInteger < 6 ) )
			OR ( tabname='plu_psgefanm' AND ( tmpInteger < 5 ) )
		  ) 
		  THEN
			--
			-- Spaltennamen und Wert ergänzen / >tmpInteger< hochzählen
			--
			tmpInteger := tmpInteger + 1;
			spNamen[tmpInteger] := 'logdatuhrz';
			tabwerteIntern := tabwerteIntern || CAST( timeofday() AS varchar );
		  END IF;

		tabname='plu_psgefabk':
		- EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[4]' );
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '0', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[4]' );

		- EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[5]' );
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '0', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[5]' );

		tabname='plu_psgefanm'
		- EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
					, 'prj.nimm__tabwerte(...)'
					, tabname || '.tabwerte[4]' );
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '0', NULL
					, 'prj.nimm__tabwerte(...)'
					, tabname || '.tabwerte[4]' );




2008-11-18  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql:
		+ prj.zeige__psgefprot.prj__pl_psgefprot__logentfernt
		+ prj.zeige__psgefabk.prj__plu_psgefabk__logentfernt
		+ prj.zeige__psgefstrkt.prj__pl_psgefstrkt__logentfernt
		+ prj.zeige__psgefanm.prj__plu_psgefanm__logentfernt

	
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='pl_psgefprot'):
		- uGoG := ARRAY[ '2', '7' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefprot_id'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ uGoG := ARRAY[ '2', '8' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefprot_id'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='pl_psgefstrkt'):
		- uGoG := ARRAY[ '2', '7' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefstrkt_id'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ uGoG := ARRAY[ '2', '8' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefstrkt_id'
			, 'logentfernt'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname='plu_psgefabk'):
		- --
		  -- Plausibilitätsprüfung tabwerte[3]
		  --
		  IF(
		  	NOT( tmpInteger < 3 )
		  ) 
		  THEN
		  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
		  		  		  , 'prj.nimm__tabwerte(...)'
		  		  		  , tabname || '.tabwerte[3]' );
		  END IF;
		  --
		  -- Plausibilitätsprüfung tabwerte[4]
		  --
		  IF(
		  	NOT( tmpInteger < 4 )
		  ) 
		  THEN
		  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
		  		  		  , 'prj.nimm__tabwerte(...)'
		  		  		  , tabname || '.tabwerte[4]' );
		  END IF;
		+ --
		  -- Plausibilitätsprüfung tabwerte[4]
		  --
		  IF(
		  	NOT( tmpInteger < 4 )
		  ) 
		  THEN
		  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
		  		  		  , 'prj.nimm__tabwerte(...)'
		  		  		  , tabname || '.tabwerte[4]' );
		  END IF;
		  --
		  -- Plausibilitätsprüfung tabwerte[5]
		  --
		  IF(
		  	NOT( tmpInteger < 5 )
		  ) 
		  THEN
		  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '1', NULL
		  		  		  , 'prj.nimm__tabwerte(...)'
		  		  		  , tabname || '.tabwerte[5]' );
		  END IF;

		- uGoG := ARRAY[ '2', '9' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefabk_id'
			, 'ps_abk_id'
			, 'spr_uebvar_id_zus'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ uGoG := ARRAY[ '2', '10' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefabk_id'
			, 'logentfernt'
			, 'ps_abk_id'
			, 'spr_uebvar_id_zus'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte (tabname=plu_psgefanm'):
		- --
		  -- Plausibilitätsprüfung ab tabwerte[3]
		  --
		  IF(
		  	NOT( tmpInteger < 3 )
		    ) 
		  THEN
		  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
					, 'prj.nimm__tabwerte(...)'
					, tabname || '.tabwerte[3]' );
		  END IF;
		+ --
		  -- Plausibilitätsprüfung ab tabwerte[4]
		  --
		  IF(
		  	NOT( tmpInteger < 4 )
		    ) 
		  THEN
		  	EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
					, 'prj.nimm__tabwerte(...)'
					, tabname || '.tabwerte[4]' );
		  END IF;

		- uGoG := ARRAY[ '2', '8' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefanm_id'
			, 'spr_uebvar_id'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ uGoG := ARRAY[ '2', '9' ];
		  spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefanm_id'
			, 'logentfernt'
			, 'spr_uebvar_id'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];

	
	* dbstruktur-tabellen.sql:
		+ intern.allewlog.logentfernt
		+ prj.pl_psgefprot.logentfernt
		+ prj.plu_psgefabk.logentfernt
		+ prj.pl_psgefstrkt.logentfernt
		+ prj.plu_psgefanm.logentfernt



2008-11-14  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql:
		- prj.zeige__psabkuerzung
		+ prj.zeige__psabk
		+ prj.zeige__psgefabk


	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		+ --
		  -- Plausibilitätsprüfung tabwerte[4]
		  --
		  IF(
			NOT( tmpInteger < 4 )
		  ) 
		  THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[4], '1', NULL
							, 'prj.nimm__tabwerte(...)'
							, tabname || '.tabwerte[4]' );
		  END IF;

		- uGoG := ARRAY[ '2', '8' ];
		+ uGoG := ARRAY[ '2', '9' ];

		+ , 'ps_abk_id'


	* dbstruktur-tabellen.sql --- prj.plu_psgefabk:
		+ ps_abk_id

		- ALTER TABLE prj.plu_psgefabk ADD CONSTRAINT uc__prj_plu_psgefabk UNIQUE(idfrei, prj_projekte_id, ps_gefabk_id );
		+ ALTER TABLE prj.plu_psgefabk ADD CONSTRAINT uc__prj_plu_psgefabk UNIQUE(idfrei, prj_projekte_id, ps_abk_id, ps_gefabk_id );

	

2008-10-30  Michael Bellair <bellair@freenet.de>
	
	* dbstruktur-funktionen.sql --- ps.nimm__tabwerte:
		- || CASE WHEN( NOT( tmpInteger < 3 ) )
					THEN ', ''spr_uebvar_id__zus''' ELSE '' END
		+ || CASE WHEN( NOT( tmpInteger < 3 ) )
					THEN ', ''spr_uebvar_id_zus''' ELSE '' END

	
	* dbstruktur-funktionen.sql --- ps.nimm__gefszenario:
		- , ''spr_uebvar_id__reprgefszen''
		  , ''spr_uebvar_id__ursp'''
		+ , ''spr_uebvar_id_reprgefszen''
		  , ''spr_uebvar_id_ursp'''

	
	* dbstruktur-funktionen.sql --- ps.nimm__abk:
		- , ''spr_uebvar_id__l''
		  , ''spr_uebvar_id__zus''
		+ , ''spr_uebvar_id_l''
		  , ''spr_uebvar_id_zus''

	
	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefabk_id'
			, 'spr_uebvar_id__zus'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefabk_id'
			, 'spr_uebvar_id_zus'
			, 'logdatuhrz'
			, 'logdquelle'
			, 'logname'
			, 'logdqok'
			, 'notizen'
			];

		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'kmp_komp_id'
			, 'prj_personen_id'
			, 'nrfzg'
			, 'spr_uebvar_id__fzg'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'kmp_komp_id'
			, 'prj_personen_id'
			, 'nrfzg'
			, 'spr_uebvar_id_fzg'
			, 'notizen'
			];

		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'prj_personen_id'
			, 'spr_uebvar_id'
			, 'spr_uebvar_id__reprgefszen'
			, 'spr_uebvar_id__ursp'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_gefszenario_id'
			, 'prj_personen_id'
			, 'spr_uebvar_id'
			, 'spr_uebvar_id_reprgefszen'
			, 'spr_uebvar_id_ursp'
			, 'notizen'
			];

		- spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_abk_id'
			, 'spr_uebvar_id'
			, 'spr_uebvar_id__l'
			, 'spr_uebvar_id__zus'
			, 'notizen'
			];
		+ spNamen := ARRAY[
			'prj_projekte_id'
			, 'ps_abk_id'
			, 'spr_uebvar_id'
			, 'spr_uebvar_id_l'
			, 'spr_uebvar_id_zus'
			, 'notizen'
			];

	
	* dbstruktur-funktionen.sql --- kmp.nimm__komp:
		- || CASE WHEN( NOT( tmpInteger < 5 ) )
					THEN ', ''spr_uebvar_id__fzg''' ELSE '' END
		+ || CASE WHEN( NOT( tmpInteger < 5 ) )
					THEN ', ''spr_uebvar_id_fzg''' ELSE '' END
	
	
	* dbstruktur-funktionen.sql --- dok.nimm__doku:
		- || CASE WHEN( NOT( tmpInteger < 3 ) )
					THEN ', ''spr_uebvar_id__ttl''' ELSE '' END
		+ || CASE WHEN( NOT( tmpInteger < 3 ) )
					THEN ', ''spr_uebvar_id_ttl''' ELSE '' END

		- || CASE WHEN( NOT( tmpInteger < 4 ) )
					THEN ', ''spr_uebvar_id__kb''' ELSE '' END
		+ || CASE WHEN( NOT( tmpInteger < 4 ) )
					THEN ', ''spr_uebvar_id_kb''' ELSE '' END

	
	* dbstruktur-sichten.sql --- prj.zeige__psgefszenario:
		- spr_uebvar_id__reprgefszen
		+ spr_uebvar_id_reprgefszen

		- spr_uebvar_id__ursp
		+spr_uebvar_id_ursp
	

	* dbstruktur-sichten.sql --- prj.zeige__dokdoku:
		- dok__doku__spr_uebvar_id__kb
		+ dok__doku__spr_uebvar_id_kb
	
		- dok__doku__spr_uebvar_id__ttl
		+ dok__doku__spr_uebvar_id_ttl
	

	* dbstruktur-sichten.sql --- kmp.zeige__komp:
		- intern_firma_id__herst
		+ intern_firma_id_herst

		- spr_uebvar_id__herstbez
		+ spr_uebvar_id_herstbez

		- spr_uebvar_id__fzgherstbez
		+ spr_uebvar_id_fzgherstbez

	* dbstruktur-tabellen.sql --- dok.doku:
		- spr_uebvar_id__kb
		+ spr_uebvar_id_kb

		- spr_uebvar_id__ttl
		+ spr_uebvar_id_ttl

	* dbstruktur-tabellen.sql --- kmp.komp:
		- spr_uebvar_id__fzg
		+ spr_uebvar_id_fzg

	* dbstruktur-tabellen.sql --- prj.ppu_kmpkomp:
		- spr_uebvar_id__fzg
		+ spr_uebvar_id_fzg

	* dbstruktur-tabellen.sql --- prj.pu_psabk:
		- spr_uebvar_id__l
		+ spr_uebvar_id_l

		- spr_uebvar_id__zus
		+ spr_uebvar_id_zus

	* dbstruktur-tabellen.sql --- prj.plu_psgefabk:
		- spr_uebvar_id__zus
		+ spr_uebvar_id_zus

	* dbstruktur-tabellen.sql --- prj.ppu_psgefszenario:
		- spr_uebvar_id__reprgefszen
		+ spr_uebvar_id_reprgefszen

		- spr_uebvar_id__ursp
		+ spr_uebvar_id_ursp

	* dbstruktur-tabellen.sql --- ps.abk:
		- spr_uebvar_id__l
		+ spr_uebvar_id_l

		- spr_uebvar_id__zus
		+ spr_uebvar_id_zus

	* dbstruktur-tabellen.sql --- ps.gefabk:
		- spr_uebvar_id__zus
		+ spr_uebvar_id_zus

	* dbstruktur-tabellen.sql --- ps.gefszenario:
		- spr_uebvar_id__reprgefszen
		+ spr_uebvar_id_reprgefszen

		- spr_uebvar_id__ursp
		+ spr_uebvar_id_ursp

	* dbstruktur-tabellen.sql --- spr.sprachen:
		- sprache__k
		+ sprache_k


2008-10-23  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		tabname='plu_psgefanm':
		+ IF(
			NOT( tmpInteger < 3 )
		  ) 
		  THEN
		+ END IF;
	
		tabname='ppu_kmpkomp'
		+ IF(
			NOT( tmpInteger < 5 )
		  ) 
		  THEN
		+ END IF;

		tabname='ppu_prtprotokoll'
		+ IF(
			NOT( tmpInteger < 3 )
		  ) 
		  THEN
		+ END IF;
		+ IF(
			NOT( tmpInteger < 10 )
		  ) 
		  THEN
		+ END IF;

		tabname='ppu_psgefszenario'
		+ IF(
			NOT( tmpInteger < 4 )
		  ) 
		  THEN
		+ END IF;
		+ IF(
			NOT( tmpInteger < 5 )
		  ) 
		  THEN
		+ END IF;
		+ IF(
			NOT( tmpInteger < 6 )
		  ) 
		  THEN
		+ END IF;
		- uGoG := ARRAY[ '2', '7' ];
		+ uGoG := ARRAY[ '3', '7' ];

	
	* dbstruktur-funktionen.sql --- ps.nimm__aspekte:
		+ IF(
			NOT( tmpInteger < 3 )
		  ) 
		  THEN
		+ END IF;

		- , ''spr_uebvar_id__zus'''
		+ || CASE WHEN( NOT( tmpInteger < 3 ) )
			THEN ', ''spr_uebvar_id__zus''' ELSE '' END

		- , '''	|| tabwerte[3] || ''''
		+ || CASE WHEN( NOT( tmpInteger < 3 ) )
			THEN ', ''' || tabwerte[3] || '''' ELSE '' END


2008-10-21  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- ps.nimm__aspekte:
		- ps.nimm__aspekte
		+ ps.nimm__tabwerte

	
	* dbstruktur-funktionen.sql --- ps.nimm__gefszenario:
		- EXECUTE intern.pruefe__array( tabwerte, 3, 4
		+ EXECUTE intern.pruefe__array( tabwerte, 3, 5
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
				, 'ps.nimm__abk(...)'
				, 'tabwerte[3]' );

		- ( tabwerte[3] NOT IN( 'GP', 'RG', 'RH', 'RR' ) )
		- RAISE EXCEPTION 'ps.nimm__abk(...)	Als Abkürzung >tabwerte[3] = %', tabwerte[3] || '< dürfen nur die Werte >GP, RG, RH, RR< übergeben werden. Das Einlesen wird abgebrochen !';
		+ ( tabwerte[4] NOT IN( 'GP', 'RG', 'RH', 'RR' ) )
		+ RAISE EXCEPTION 'ps.nimm__abk(...)	Als Abkürzung >tabwerte[4] = %', tabwerte[4] || '< dürfen nur die Werte >GP, RG, RH, RR< übergeben werden. Das Einlesen wird abgebrochen !';

		+ , ''spr_uebvar_id__zus''
		- || CASE WHEN( NOT( tmpInteger < 4 ) )
		+ || CASE WHEN( NOT( tmpInteger < 5 ) )

		- , '''	|| tabwerte[3] || ''''
		+ , '''	|| tabwerte[3] || '''
		+ , '''	|| tabwerte[4] || ''''

		- || CASE WHEN( NOT( tmpInteger < 4 ) )
			THEN ', ''' || tabwerte[4] || '''' ELSE '' END
		- || CASE WHEN( NOT( tmpInteger < 5 ) )
			THEN ', ''' || tabwerte[5] || '''' ELSE '' END

	
	* dbstruktur-funktionen.sql --- ps.nimm__gefszenario:
		- EXECUTE intern.pruefe__array( tabwerte, 2, 3
		+ EXECUTE intern.pruefe__array( tabwerte, 2, 4
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL, 'ps.nimm__gefszenario(...)', 'tabwerte[3]' );

		+ , ''spr_uebvar_id__reprgefszen''
		- || CASE WHEN( NOT( tmpInteger < 3 ) )
		+ || CASE WHEN( NOT( tmpInteger < 4 ) )

		- , '''	|| tabwerte[2] || ''''
		- || CASE WHEN( NOT( tmpInteger < 3 ) )
			THEN ', ''' || tabwerte[3] || '''' ELSE '' END
	
		+ , '''	|| tabwerte[2] || '''
		+ , '''	|| tabwerte[3] || ''''
		+ || CASE WHEN( NOT( tmpInteger < 4 ) )
			THEN ', ''' || tabwerte[4] || '''' ELSE '' END


2008-10-20  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- prj.nimm__tabwerte:
		- tabname='pl_psgefabk':
		+ tabname='plu_psgefabk':

		+ IF(
			NOT( tmpInteger < 3 )
		  ) 
		  THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[3], '1', NULL
						, 'prj.nimm__tabwerte(...)'
						, tabname || '.tabwerte[3]' );
		  END IF;

		- uGoG := ARRAY[ '2', '7' ];
		+ uGoG := ARRAY[ '2', '8' ];
		+ , 'spr_uebvar_id__zus'

		tabname='pu_psabk'
		+ IF(
			NOT( tmpInteger < 3 )
		  ) 
		  THEN
		+ END IF;

		+ IF(
			NOT( tmpInteger < 4 )
		  ) 
		  THEN
		+ END IF;

		+ IF(
			NOT( tmpInteger < 5 )
		  ) 
		  THEN
			EXECUTE intern.pruefe__dt( 'gz', tabwerte[5], '1', NULL, 'prj.nimm__tabwerte(...)', tabname || '.tabwerte[5]' );
		  END IF;

		- uGoG := ARRAY[ '2', '5' ];
		+ uGoG := ARRAY[ '2', '6' ];
		+ , 'spr_uebvar_id__zus'

		tabname='ppu_psgefszenario'
		+ EXECUTE intern.pruefe__dt( 'gz', tabwerte[6], '1', NULL, 'prj.nimm__tabwerte(...)', tabname || '.tabwerte[6]' );
		- uGoG := ARRAY[ '2', '6' ];
		+ uGoG := ARRAY[ '2', '7' ];
		+ , 'spr_uebvar_id__reprgefszen'
	
	* dbstruktur-tabellen.sql --- prj.pl_psgefabk:
		- prj.pl_psgefabk
		+ prj.plu_psgefabk
		+ Spalte >spr_uebvar_id__zus< einschl. Fremdschlüssel neu erstellt

	* dbstruktur-tabellen.sql --- ps.gefabk:
		+ Spalte >spr_uebvar_id__zus< einschl. Fremdschlüssel neu erstellt

2008-10-17  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql --- prj.zeige__psabk:
		+ Spalte >ps_abk__spr_uebvar_id__zus< neu erstellt
		+ Spalte >prj_pu_psabk__spr_uebvar_id__zus< neu erstellt
		+ Spalte >spr_uebvar_id__zus< neu erstellt

	* dbstruktur-tabellen.sql --- prj.pu_psabk:
		+ Spalte >spr_uebvar_id__zus< einschl. Fremdschlüssel neu erstellt

	* dbstruktur-tabellen.sql --- ps.abk:
		+ Spalte >spr_uebvar_id__zus< einschl. Fremdschlüssel neu erstellt

	* dbstruktur-tabellen.sql --- prj.ppu_psgefszenario:
		+ Spalte >spr_uebvar_id__reprgefszen< einschl. Fremdschlüssel neu erstellt

	* dbstruktur-tabellen.sql --- ps.gefszenario:
		+ Spalte >spr_uebvar_id__reprgefszen< einschl. Fremdschlüssel neu erstellt

		- Unique-Constraint >uc__ps_gefszenario UNIQUE( idfrei, spr_uebvar_id, spr_uebvar_id__ursp )<
		+ Unique-Constraint >uc__ps_gefszenario UNIQUE( idfrei, spr_uebvar_id, spr_uebvar_id__reprgefszen, spr_uebvar_id__ursp )<

	* dbstruktur-funktionen.sql --- intern.gib__Liste_abczkrestzk:
		- tabwerte[2] als Zeichenkette
		+ tabwerte[2] als Ganzzahl
	
	* dbstruktur-funktionen.sql --- intern.gib__Liste_abczkrestzk:
		- WHILE lauf < length( wortgruppe )
		+ WHILE lauf <= length( wortgruppe )


2008-10-16  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- prt.nimm__typ:
		+ Funktion neu erstellt

	* dbstruktur-sichten.sql --- prt.zeige__prtprotokolleintrag:
		- prt_protokoll_typ
		- prt_komp_id
		- kmp_komp_id
		- prt_komp_notizen

		+ prt_typ_id
		+ prt_typ_notizen
		+ prt_typ_aspekt
		+ prt_typ__spr_uebvar_id

		- prt_protokoll__spr_uebvar_id
		+ prt_protokoll__spr_uebvar_id

	* dbstruktur-tabellen.sql:
		+ prt.typ neu erstellt

		- prt.protokoll.typ
		+ prt.protokoll.prt_typ_id


2008-10-15  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql --- prj.zeige__dokdoku:
		+ Sicht neu erstellt


2008-10-13  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- ps.nimm__abk:
		- 'BP'
		+ 'GP'

		- 'RA'
		+ 'RG'

		+ 'RR'

	* dbstruktur-sichten.sql --- prj.zeige__psabk:
		+ Sicht neu erstellt


2008-08-26  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- tl.erzeuge__DBModell(...):
		- FOR tmpInteger_2 IN 2..array_upper ( string_to_array( zeile_2.beschreibung, chr( 2 ) ), 1 ) - 1
		+ FOR tmpInteger_2 IN 2..array_upper ( string_to_array( zeile_2.beschreibung, chr( 2 ) ), 1 ) - 1 BY 2

		- tmpInteger_2 := tmpInteger_2 + 1;


2008-08-25  Michael Bellair <bellair@freenet.de>

	* dbstruktur-sichten.sql --- prj.zeige__strstrkt:
		+ Sicht neu erstellt


2008-08-07  Michael Bellair <bellair@freenet.de>

	* dbstruktur-funktionen.sql --- str.zeige__strstrkt:
		+ *.idfrei = 0

	* dbstruktur-funktionen.sql --- prt.zeige__prtprotokolleintrag:
		+ *.idfrei = 0

	* dbstruktur-funktionen.sql --- kmp.zeige__komp:
		+ *.idfrei = 0

	* dbstruktur-funktionen.sql --- dok.zeige__dokdoku:
		+ *.idfrei = 0

	* dbstruktur-funktionen.sql --- intern.gib__Liste_abczkrestzk(...):
		- FOR lauf IN 1..length( wortgruppe )
		+ lauf := 1;
		+ WHILE lauf < length( wortgruppe )

		- lauf := lauf + length( zk ) - 1;
		+ lauf := lauf + length( zk );


	* dbstruktur-funktionen.sql --- spr.nimm__wgruppe(...):
		- istUebersetzung CONSTANT boolean := NOT( ( spruebvarid = 0 ) OR ( spruebvarid IS NULL ) );
		+ istUebersetzung CONSTANT boolean := NOT( ( spruebvarid = '0' ) OR ( spruebvarid IS NULL ) );


2008-03-06  Michael Bellair <bellair@freenet.de>

	* makefile:
		- makeglos.pl $(DNAME).glo
		+ makeindex -s $(DNAME).ist -t $(DNAME).glg -o $(DNAME).gls $(DNAME).glo


------------------------------------------------------------------------------------------
----- v1.0 released ----------------------------------------------------------------------
------------------------------------------------------------------------------------------

2007-09-21  Michael Bellair <bellair@freenet.de>

	* Erste Version
