Index: trunk/info/conf/alkisn_conf.php
===================================================================
--- trunk/info/conf/alkisn_conf.php	(revision 399)
+++ trunk/info/conf/alkisn_conf.php	(revision 400)
@@ -4,4 +4,5 @@
 	Zentrale Einstellungen - Test-Server
 	2016-02-18 Version fuer norGIS-ALKIS-Import
+	2018-02-15 Individuelle Gemeinde-Filter setzen, $dbconn 
 */
 
@@ -15,21 +16,30 @@
 	$dbpre  = 'alkisn'; // _N !
 
-	switch ($gkz) {		// Mandanten einzeln umstellen
+//	im Normalfall  ...
+	$dbgkz = $gkz;				// normalerweise eine Datenbank je Mandant
+	$dbhost = '10.0.___.__';	// Datenbank-Server IP
+	// Gebiets-Filter
+	$filtland=$defland;			// ax_gemeinde.land
+	$filtrgb='7';				// ax_gemeinde.regierungsbezirk
+	$filtkreis='';				// ax_gemeinde.kreis
+	$filtgem = '';				// ax_gemeinde.gemeinde
 
-		// Fuer die folgenden GKZ eine Datenbank auf dem TEST-Server verwenden
+	switch ($gkz) {	// lokale und temporäre Besonderheiten je Mandant, überschreiben die Defaults von oben
+
 		case "150": 
-			$dbhost = 'localhost';
+			$filtkreis='__';
+			$filtgem = '0__';
 			break;
+
+		case "320":
+			$dbgkz = '300';  // Gemeinsame Kreis-Datenbank
+			$filtkreis='__';
+			$filtgem = '0__';
+			break;
+
 		case "rlp": 
 			$dbhost = 'localhost';
 			break;
-
-		// Fuer die restlichen GKZ eine Datenbank aus Produktion verwenden
-		default:
-			$dbhost = '10.0.100.73';  // Prod-DB
-		//	$dbhost = 'localhost';
-			break;
 	}
-
 
 //	Authentifizierung
@@ -39,8 +49,16 @@
 
 //	Link für Hilfe
-	$hilfeurl = 'http://skrzmaptest01.asp.krzwan.de/?Kartenwerke:ALKIS-Auskunft';
+	$hilfeurl = 'http://mapserver.krz.de/?Karten/ALKIS/ALKIS-Auskunft';
 
 //	Entwicklungsumgebung
-	$debug=3; // 0=Produktion
+	$debug=3; // 0=Produktion 1=mit Fehlermeldungen, 2=mit Informationen, 3=mit SQL
+
+//	Den Datenbank-Connection-String aus den oben konfigurierten Parametern bilden
+	$dbconn = "host=".$dbhost." port=" .$dbport." dbname=".$dbpre.$dbgkz." user=".$dbuser." password=".$dbpass;
+
+//	Je Modul noch individuell anhängen: " options='--application_name=ALKIS-Auskunft_programmname.php'"
+//	In postgresql.conf:
+//		log_line_prefix = '%t [%a-%h] %q%u@%d '
+//	wobei %a = Application
 
 ?>
Index: trunk/info/info/alkisn/alkisfshist.php
===================================================================
--- trunk/info/info/alkisn/alkisfshist.php	(revision 399)
+++ trunk/info/info/alkisn/alkisfshist.php	(revision 400)
@@ -10,4 +10,5 @@
 	2017-10-09 Sauber filtern auf NOT endet IS NULL
 	2017-10-17 Deutsches Datumsformat fÃŒr Zeitpunkt der Entstehung
+	2018-03-16 NULL-Werte in gemeinde und kreis in ax_historischesflurstueck berÃŒcksichtigen
 */
 
@@ -67,18 +68,10 @@
 // Suchen der Vorgaenger zum aktuellen Flurst. Ausgabe von Selbst-Links Zeilenweise in <td>.
 // Akt. FS hat keine Verweise auf Vorgaenger. Darum in den Nachfolger-Verweisen von Hist.-FS suchen.
-// Problem: Dies sind Arrays, die nicht performant durchsucht werden koennen.
 	global $gkz, $con, $debug, $showkey, $filtkreis, $filtgem;
 
-	// Bei kleineren Datenbanken keine spÃŒrbare VerzÃ¶gerung bei Suche mit " = ANY(Array)"
-	// FÃŒr grosse BestÃ€nde zusÃ€tzlich filtern ÃŒber indizierte Felder Gemarkung + Flur?
-	// Dazu die nÃ€chsten 2 Zeilen aktivieren.	
-//	$wherecl.="AND gemarkungsnummer=".substr($fsk, 2, 4)." ";
-//	$wherecl.="AND flurnummer=".ltrim(substr($fsk, 6, 3), "0")." ";
-	// Frage: kann das bei Historisierung wechseln? (Umflurung, Umgemarkung). Dann ggf. Fehler (nicht gefunden)
-
-	$sqlv="SELECT  'h' AS ftyp, h.gml_id, h.flurstueckskennzeichen FROM ax_historischesflurstueck h "
-	."WHERE $1 = ANY (h.nachfolgerflurstueckskennzeichen) AND NOT h.endet IS NULL "
+	$sqlv="SELECT 'h' AS ftyp, h.gml_id, h.flurstueckskennzeichen FROM ax_historischesflurstueck h "
+	."WHERE $1 = ANY (h.nachfolgerflurstueckskennzeichen) AND h.endet IS NULL "
 	."UNION SELECT 'o' AS ftyp, o.gml_id, o.flurstueckskennzeichen FROM ax_historischesflurstueckohneraumbezug o "
-	."WHERE $1 = ANY (o.nachfolgerflurstueckskennzeichen) AND NOT o.endet IS NULL "
+	."WHERE $1 = ANY (o.nachfolgerflurstueckskennzeichen) AND o.endet IS NULL "
 	."ORDER BY flurstueckskennzeichen";
 
@@ -102,5 +95,8 @@
 	if ($zv == 0) {
 		echo "(keine)";
-	} // else {if ($debug > 2) {echo "\n<p class='dbg'>Treffer=".$zv."</p>";} }
+		// if ($debug > 2) {echo "\n<p class='dbg'>SQL='".$sqlv."' FSK='".$fsk."'</p>";}
+	} else {
+		// if ($debug > 2) {echo "\n<p class='dbg'>Treffer=".$zv."</p>";}
+	}
 	return;
 }
@@ -176,6 +172,6 @@
 	} else { // ZusÃ€tze zur WHERE-Clausel
 		$wheref=" AND f.kreis = '".$filtkreis."' AND f.gemeinde = '".$filtgem."' ";
-		$whereh=" AND h.kreis = '".$filtkreis."' AND h.gemeinde = '".$filtgem."' ";
-		$whereo=" AND o.gemeinde = '".$filtgem."' ";
+		$whereh=" AND (h.kreis IS NULL OR h.kreis = '".$filtkreis."' ) AND (h.gemeinde IS NULL OR h.gemeinde = '".$filtgem."') ";
+		$whereo=" AND (o.gemeinde IS NULL OR o.gemeinde = '".$filtgem."') ";
 	}
 
