Index: trunk/info/info/alkis/alkisstrasse.php
===================================================================
--- trunk/info/info/alkis/alkisstrasse.php	(revision 336)
+++ trunk/info/info/alkis/alkisstrasse.php	(revision 339)
@@ -13,4 +13,5 @@
 	2014-09-15 Bei Relationen den Timestamp abschneiden
 	2014-09-16 Wechsel Gem./Flur durch <b> hervorheben
+	2014-09-30 RÃŒckbau substring(gml_id)
 */
 session_start();
@@ -139,12 +140,12 @@
 // Suchkriterium: gml_id aus Katalog
 $subquery = "SELECT f1.gml_id AS fsgml, lm.gml_id AS lgml, lm.land, lm.regierungsbezirk, lm.kreis, lm.gemeinde, lm.lage, lm.hausnummer 
- FROM ax_flurstueck f1 JOIN ax_lagebezeichnungmithausnummer lm ON substring(lm.gml_id,1,16)=ANY(f1.weistAuf) 
+ FROM ax_flurstueck f1 JOIN ax_lagebezeichnungmithausnummer lm ON lm.gml_id=ANY(f1.weistAuf) 
  WHERE f1.endet IS NULL AND lm.endet IS NULL
 UNION SELECT f2.gml_id AS fsgml, '' AS lgml, lo.land, lo.regierungsbezirk, lo.kreis, lo.gemeinde, lo.lage, '' AS hausnummer 
- FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON substring(lo.gml_id,1,16)=ANY(f2.zeigtauf) 
+ FROM ax_flurstueck f2 JOIN ax_lagebezeichnungohnehausnummer lo ON lo.gml_id=ANY(f2.zeigtauf) 
  WHERE f2.endet IS NULL AND lo.endet IS NULL";
 
 $sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.amtlicheflaeche, duett.lgml, duett.hausnummer 
- FROM ax_flurstueck f JOIN ( ".$subquery." ) AS duett ON substring(f.gml_id,1,16)=duett.fsgml 
+ FROM ax_flurstueck f JOIN ( ".$subquery." ) AS duett ON f.gml_id=duett.fsgml 
  JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
  JOIN ax_lagebezeichnungkatalogeintrag s ON duett.land=s.land AND duett.regierungsbezirk=s.regierungsbezirk AND duett.kreis=s.kreis AND duett.gemeinde=s.gemeinde AND duett.lage=s.lage 
Index: trunk/info/info/alkis/alkisfkt.php
===================================================================
--- trunk/info/info/alkis/alkisfkt.php	(revision 336)
+++ trunk/info/info/alkis/alkisfkt.php	(revision 339)
@@ -13,4 +13,5 @@
 	2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-15 Bei Relationen den Timestamp abschneiden
+	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
 */
 
@@ -96,5 +97,5 @@
 	$sql="SELECT g.gemarkungsnummer, g.bezeichnung, f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche 
 	FROM ax_flurstueck f 
-	JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) 
+	JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
 	LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
 	WHERE s.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND g.endet IS NULL ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
@@ -198,5 +199,5 @@
 	$sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;";
 
-	$v = array(substr($gmlid,0,16)); // 16 Stellen bei Relationen
+	$v = array($gmlid); // 16 Stellen bei Relationen
 	$resn = pg_prepare("", $sqln);
 	$resn = pg_execute("", $v);
@@ -204,5 +205,5 @@
 	if (!$resn) {
 		echo "<p class='err'>Fehler bei Eigent&uuml;mer</p>\n";
-		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".substr($gmlid,0,16)."'</p>";}
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sqln."<br>$1=gml= '".$gmlid."'</p>";}
 	}
 
@@ -239,11 +240,9 @@
 			// die zu allen Namensnummern der Rechtsgemeinschaft eine Relation besitzt.
 
-			// Die Relation 'Namensnummer' hat VorgÃ€nger 'Namensnummer' gibt Auskunft darÃŒber, 
-			// aus welchen Namensnummern die aktuelle entstanden ist.
 
 		// Schleife 2: P e r s o n
 		// Beziehung: ax_person  <benennt<  ax_namensnummer
 		$sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad ";
-		$sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=substring(p.gml_id,1,16) WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;";
+		$sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=p.gml_id WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;";
 
 		$v = array($gmlnn);
@@ -291,10 +290,11 @@
 			if ($mitadresse) {
 				// Schleife 3:  A d r e s s e  (OPTIONAL)
-				$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland ";
-				$sqla.="FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16)=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL;"; // ORDER?
+				$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland 
+				FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL LIMIT 2;";
 				$gmlp=$rowp["gml_id"]; // Person
 				$v = array($gmlp);
 				$resa = pg_prepare("", $sqla);
 				$resa = pg_execute("", $v);
+
 				if (!$resa) {
 					echo "\n\t<p class='err'>Fehler bei Adressen</p>\n";
@@ -303,41 +303,45 @@
 				$j=0;
 				while($rowa = pg_fetch_array($resa)) {
-					$gmla=$rowa["gml_id"];
-					$plz=$rowa["plz"]; // integer
-					if($plz == 0) {
-						$plz="";
-					} else {
-						$plz=str_pad($plz, 5, "0", STR_PAD_LEFT);
+					$j++;
+					if ($j == 1) { // erste Adresse anzeigen
+						$gmla=$rowa["gml_id"];
+						$plz=$rowa["plz"]; // integer
+						if($plz == 0) {
+							$plz="";
+						} else {
+							$plz=str_pad($plz, 5, "0", STR_PAD_LEFT);
+						}
+						$ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8");
+						$str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8");
+						$hsnr=$rowa["hausnummer"];
+						$land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
+
+						echo "\n<tr>\n\t<td>&nbsp;</td>"; //Sp. 1
+						echo "\n\t<td><p class='gadr'>"; //Sp. 2
+						if ($str.$hsnr != "") {
+							echo $str." ".$hsnr."<br>";
+						}
+						if ($plz.$ort != "") {
+							echo $plz." ".$ort;
+						}
+						if ($land != "" and $land != "DEUTSCHLAND") {
+							echo ", ".$land;
+						}
+						echo "</p></td>";
+						echo "\n\t<td>"; // Sp. 3
+						if ($idanzeige) {
+							echo "<p class='nwlink noprint'>";
+							linkgml($gkz, $gmla, "Adresse", "ax_adresse");
+							echo "</p>";
+						} else { 
+							echo "&nbsp;";
+						}
+						echo "</td>\n</tr>";
+					} else { // manchmal dopplete Angaben (_straÃe / _str.)
+						echo "\n<tr>\n\t<td>&nbsp;</td>\n\t<td><p class='dbg' title='Siehe Auskunft zur Person'>weitere Adresse</p></td>\n\t<td>&nbsp;</td>\n</tr>";
 					}
-					$ort=htmlentities($rowa["ort_post"], ENT_QUOTES, "UTF-8");
-					$str=htmlentities($rowa["strasse"], ENT_QUOTES, "UTF-8");
-					$hsnr=$rowa["hausnummer"];
-					$land=htmlentities($rowa["bestimmungsland"], ENT_QUOTES, "UTF-8");
-
-					echo "\n<tr>\n\t<td>&nbsp;</td>"; // Spalte 1
-					echo "\n\t<td><p class='gadr'>"; //Spalte 2
-					if ($str.$hsnr != "") {
-						echo $str." ".$hsnr."<br>";
-					}
-					if ($plz.$ort != "") {
-						echo $plz." ".$ort;
-					}
-					if ($land != "" and $land != "DEUTSCHLAND") {
-						echo ", ".$land;
-					}
-					echo "</p></td>";
-					echo "\n\t<td>"; // Spalte 3
-					if ($idanzeige) {
-						echo "<p class='nwlink noprint'>";
-						linkgml($gkz, $gmla, "Adresse", "ax_adresse");
-						echo "</p>";
-					} else { 
-						echo "&nbsp;";
-					}
-					echo "</td>\n</tr>";
-					$j++;
 				}
 				pg_free_result($resa);
-			} // End if
+			}
 			// 'keine Adresse' kann vorkommen, z.B. "Deutsche Telekom AG"
 
@@ -370,5 +374,5 @@
 	if ($n == 0) { // bei "Fiktives Blatt" KEIN Fehler 
 		if ($debug > 0) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";}
-		if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".substr($gmlid,0,16)."'</p>";}
+		if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";}
 	}
 	pg_free_result($resn);
@@ -422,5 +426,5 @@
 		case "":   $wert = "Person"; break; // falls (noch) nicht gefuellt
 		default: // Datenbank-Abfrage
-			$sql="SELECT bezeichner FROM ax_namensnummer_eigentuemerart WHERE wert= $1 ;";
+			$sql="SELECT bezeichner FROM v_namnum_eigart WHERE wert= $1 ;";
 			$v=array($key);
 			$res=pg_prepare("", $sql);
Index: trunk/info/info/alkis/alkisinlaybaurecht.php
===================================================================
--- trunk/info/info/alkis/alkisinlaybaurecht.php	(revision 336)
+++ trunk/info/info/alkis/alkisinlaybaurecht.php	(revision 339)
@@ -12,4 +12,5 @@
 	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix)
 */
 session_start();
@@ -46,5 +47,5 @@
 $sql ="SELECT r.ogc_fid, r.name, r.stelle, r.bezeichnung AS rechtbez, a.bezeichner  AS adfbez, d.bezeichnung AS stellbez, round(st_area(r.wkb_geometry)::numeric,0) AS flae 
 FROM ax_bauraumoderbodenordnungsrecht r 
-LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON r.artderfestlegung=a.wert 
+LEFT JOIN v_baurecht_adf a ON r.artderfestlegung=a.wert 
 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 ;";
 
Index: trunk/info/info/alkis/alkisbaurecht.php
===================================================================
--- trunk/info/info/alkis/alkisbaurecht.php	(revision 336)
+++ trunk/info/info/alkis/alkisbaurecht.php	(revision 339)
@@ -40,5 +40,5 @@
 $sql ="SELECT r.ogc_fid, r.artderfestlegung as adfkey, r.name, r.stelle, r.bezeichnung AS rechtbez, a.bezeichner AS adfbez, d.bezeichnung AS stellbez, d.stellenart, round(st_area(r.wkb_geometry)::numeric,0) AS flae 
 FROM ax_bauraumoderbodenordnungsrecht r 
-LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON r.artderfestlegung=a.wert 
+LEFT JOIN v_baurecht_adf a ON r.artderfestlegung=a.wert 
 LEFT JOIN ax_dienststelle d ON r.land=d.land AND r.stelle=d.stelle WHERE r.gml_id= $1 AND r.endet IS NULL AND d.endet IS NULL;";
 
Index: trunk/info/info/alkis/alkishaus.php
===================================================================
--- trunk/info/info/alkis/alkishaus.php	(revision 336)
+++ trunk/info/info/alkis/alkishaus.php	(revision 339)
@@ -9,4 +9,5 @@
 	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
 
 	ToDo:
@@ -55,8 +56,8 @@
 h.bauweise_beschreibung, u.bezeichner AS bfunk, z.bezeichner AS bzustand, "; // w.bezeichner AS bweitfunk,
 $sqlg.="d.bezeichner AS bdach, round(area(g.wkb_geometry)::numeric,2) AS gebflae FROM ax_gebaeude g 
-LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id 
-LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert 
-LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert 
-LEFT JOIN ax_gebaeude_dachform d ON g.dachform=d.wert
+LEFT JOIN v_geb_bauweise h ON g.bauweise=h.bauweise_id 
+LEFT JOIN v_geb_funktion u ON g.gebaeudefunktion=u.wert 
+LEFT JOIN v_geb_zustand z ON g.zustand=z.wert 
+LEFT JOIN v_geb_dachform d ON g.dachform=d.wert
 WHERE g.gml_id= $1 AND g.endet IS NULL ;";
 
@@ -129,5 +130,5 @@
 	$sqll ="SELECT 'm' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer ";
 	$sqll.="FROM ax_gebaeude g ";
-	$sqll.="JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(g.zeigtauf) ";
+	$sqll.="JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) ";
 	$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
 	$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL ";
@@ -136,5 +137,5 @@
 	$sqll.="SELECT 'p' AS ltyp, l.gml_id AS gmllag, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer ";
 	$sqll.="FROM ax_gebaeude g "; 
-	$sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON substring(l.gml_id,1,16)=g.hat ";
+	$sqll.="JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat ";
 	$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
 	$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL ";
@@ -269,5 +270,5 @@
 				//$wgfarr=explode(",", $wgflist);
 				//for each ...
-				$sqlw="SELECT wert, bezeichner FROM ax_gebaeude_weiterefunktion WHERE wert in ( $1 ) ORDER BY wert;";
+				$sqlw="SELECT wert, bezeichner FROM v_geb_weiterefkt WHERE wert in ( $1 ) ORDER BY wert;";
 				$v = array($wgflist);
 				$resw = pg_prepare("", $sqlw);
Index: trunk/info/info/alkis/alkisinlayausk.php
===================================================================
--- trunk/info/info/alkis/alkisinlayausk.php	(revision 336)
+++ trunk/info/info/alkis/alkisinlayausk.php	(revision 339)
@@ -20,4 +20,5 @@
 	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-15 Bei Relationen den Timestamp abschneiden
+	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
 */
 session_start();
@@ -75,4 +76,5 @@
 } else {
 	echo "<p class='err'>Kein Treffer fuer gml_id=".$gmlid."</p>";
+	//if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
 
@@ -112,5 +114,5 @@
 // Lage MIT HausNr (Adresse)
 $sql ="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.hausnummer 
-FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf)
+FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistauf)
 JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
 WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL 
@@ -147,5 +149,5 @@
 	// Lage OHNE HausNr
 	$sql ="SELECT DISTINCT s.gml_id AS kgml, l.gml_id, s.bezeichnung, l.unverschluesselt 
-	FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf)
+	FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=ANY(f.zeigtauf)
 	LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
 	WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL  
@@ -195,8 +197,8 @@
 $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, 
 s.gml_id AS s_gml, s.buchungsart, s.laufendenummer, s.zaehler, s.nenner, z.bezeichnung, a.bezeichner AS bart 
-FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=substring(s.gml_id,1,16) 
-JOIN ax_buchungsblatt b ON s.istbestandteilvon=substring(b.gml_id,1,16)
+FROM ax_flurstueck f JOIN ax_buchungsstelle s ON f.istgebucht=s.gml_id 
+JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id
 LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
-LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart=a.wert 
+LEFT JOIN v_bs_buchungsart a ON s.buchungsart=a.wert 
 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 
 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
Index: trunk/info/info/alkis/alkisrelationen.php
===================================================================
--- trunk/info/info/alkis/alkisrelationen.php	(revision 336)
+++ trunk/info/info/alkis/alkisrelationen.php	(revision 339)
@@ -57,5 +57,5 @@
 	echo "<p>Konstante = '".substr($gmlid, 6, 6)."'</p>";
 	echo "<p>Objekt-Nr = '".substr($gmlid, 12, 4)."'</p>";
-	echo "<p>Zeitstempel = '".substr($gmlid, 16)."'</p>";
+//	echo "<p>Zeitstempel = '".substr($gmlid, 16)."'</p>";
 
 //	$sql="SELECT beziehungsart, beziehung_zu FROM alkis_beziehungen WHERE beziehung_von= $1;";
Index: trunk/info/info/alkis/alkisbestnw.php
===================================================================
--- trunk/info/info/alkis/alkisbestnw.php	(revision 336)
+++ trunk/info/info/alkis/alkisbestnw.php	(revision 339)
@@ -13,4 +13,5 @@
 	2014-09-10 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-15 Bei Relationen den Timestamp abschneiden
+	2014-09-30 RÃŒckbau substring(gml_id)
 
 	ToDo: ZÃ€hler fuer Anzahl FS in der Liste
@@ -116,5 +117,5 @@
 if ($blattkey == 1000) { // GB-Blatt  <istBestandteilVon<  sh=herrschend  >an>  sd=dienend
 	$sql="SELECT count(sd.laufendenummer) AS anzahl
-	FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (substring(sd.gml_id,1,16)=ANY(sh.an) OR substring(sd.gml_id,1,16)=ANY(sh.zu)) 
+	FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu)) 
 	WHERE sh.istbestandteilvon= $1 AND sd.endet IS NULL AND sh.endet IS NULL;";
 
@@ -161,5 +162,5 @@
 // aktuelles ax_buchungsblatt <istBestandteilVon< ax_buchungsstelle 
 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer AS lfd, s.beschreibungdesumfangsderbuchung AS udb, s.zaehler, s.nenner, s.nummerimaufteilungsplan AS nrap, s.beschreibungdessondereigentums AS sond, b.bezeichner as bart 
-FROM ax_buchungsstelle s LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert 
+FROM ax_buchungsstelle s LEFT JOIN v_bs_buchungsart b ON s.buchungsart=b.wert 
 WHERE s.istbestandteilvon= $1 AND s.endet IS NULL ORDER BY cast(s.laufendenummer AS integer);";
 
@@ -170,5 +171,5 @@
 if (!$res) {
 	echo "<p class='err'>Fehler bei Buchung.</p>\n";
-	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '". $gmlid."'</p>";}
 }
 $i=0;
@@ -198,6 +199,6 @@
 		//  sh=herrschend          sd=dienend
 		$sql ="SELECT sd.gml_id, sd.buchungsart, sd.laufendenummer AS lfd, sd.beschreibungdesumfangsderbuchung AS udb, sd.nummerimaufteilungsplan AS nrap, sd.beschreibungdessondereigentums AS sond, b.bezeichner AS bart ";
-		$sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (substring(sd.gml_id,1,16)=ANY(sh.an) OR substring(sd.gml_id,1,16)=ANY(sh.zu)) "; 
-		$sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON sd.buchungsart=b.wert ";
+		$sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON (sd.gml_id=ANY(sh.an) OR sd.gml_id=ANY(sh.zu)) "; 
+		$sql.="LEFT JOIN v_bs_buchungsart b ON sd.buchungsart=b.wert ";
 		$sql.="WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL ORDER BY sd.laufendenummer;";
 
@@ -219,5 +220,5 @@
 			// dienendes Grundbuch
 			$sql ="SELECT b.gml_id, b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung AS blatt, b.blattart, z.bezeichnung AS beznam ";
-			$sql.="FROM ax_buchungsblatt b JOIN ax_buchungsstelle s ON substring(b.gml_id,1,16)=s.istbestandteilvon ";
+			$sql.="FROM ax_buchungsblatt b JOIN ax_buchungsstelle s ON b.gml_id=s.istbestandteilvon ";
 			$sql.="LEFT JOIN ax_buchungsblattbezirk z ON b.land=z.land AND b.bezirk=z.bezirk ";
 			$sql.="WHERE s.gml_id= $1 AND b.endet IS NULL ORDER BY b.land, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
@@ -359,9 +360,9 @@
 $sql ="SELECT bb.gml_id, bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung AS blatt, bb.blattart, 
 sb.gml_id AS gml_s, sb.laufendenummer AS lfdnr, sb.buchungsart, ba.bezeichner AS bart, bz.bezeichnung AS beznam, ag.bezeichnung, ag.stelle, ag.stellenart 
-FROM ax_buchungsstelle sf JOIN ax_buchungsstelle sb ON (substring(sf.gml_id,1,16)=ANY(sb.an) OR substring(sf.gml_id,1,16)=ANY(sb.zu)) 
-JOIN ax_buchungsblatt bb ON substring(bb.gml_id,1,16)=sb.istbestandteilvon 
+FROM ax_buchungsstelle sf JOIN ax_buchungsstelle sb ON (sf.gml_id=ANY(sb.an) OR sf.gml_id=ANY(sb.zu)) 
+JOIN ax_buchungsblatt bb ON bb.gml_id=sb.istbestandteilvon 
 LEFT JOIN ax_buchungsblattbezirk bz ON bb.land=bz.land AND bb.bezirk=bz.bezirk 
 LEFT JOIN ax_dienststelle ag ON bz.land=ag.land AND bz.stelle=ag.stelle 
-LEFT JOIN ax_buchungsstelle_buchungsart ba ON sb.buchungsart=ba.wert 
+LEFT JOIN v_bs_buchungsart ba ON sb.buchungsart=ba.wert 
 WHERE sf.istbestandteilvon = $1 AND sf.endet IS NULL AND sb.endet IS NULL AND bb.endet IS NULL ORDER BY bb.land, bb.bezirk, bb.buchungsblattnummermitbuchstabenerweiterung;";
 
@@ -371,5 +372,5 @@
 if (!$resb) {
 	echo "<p class='err'>Fehler bei 'andere Berechtigte Bl&auml;tter.</p>\n";
-	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}
+	if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 }
 $b=0; // count: Blaetter
Index: trunk/info/info/alkis/alkisausk.php
===================================================================
--- trunk/info/info/alkis/alkisausk.php	(revision 336)
+++ trunk/info/info/alkis/alkisausk.php	(revision 339)
@@ -16,5 +16,5 @@
 	2014-01-28 Link zu alkisstrasse.php
 	2014-09-15 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
-
+	2014-09-30 RÃŒckbau substring(gml_id)
 */
 session_start();
@@ -136,5 +136,5 @@
 // Lagebezeichnung MIT Hausnummer (Adresse)
 $sql ="SELECT DISTINCT l.gml_id, s.gml_id AS kgml, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung 
-FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf)
+FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistauf)
 LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
 WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ORDER BY l.gemeinde, l.lage, l.hausnummer;";
@@ -175,5 +175,5 @@
 JOIN ax_buchungsblatt b ON s.istbestandteilvon=b.gml_id 
 LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
-LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert 
+LEFT JOIN v_bs_buchungsart a ON s.buchungsart = a.wert 
 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL AND b.endet IS NULL 
 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;";
Index: trunk/info/info/alkis/alkisnamstruk.php
===================================================================
--- trunk/info/info/alkis/alkisnamstruk.php	(revision 336)
+++ trunk/info/info/alkis/alkisnamstruk.php	(revision 339)
@@ -11,4 +11,5 @@
 	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-30 RÃŒckbau substring(gml_id)
 
 	ToDo: Sortierung der GrundbÃŒcher zum Namen
@@ -89,5 +90,5 @@
 
 	$sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland 
-	FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16)=ANY(p.hat) WHERE p.gml_id= $1 ORDER BY a.gml_id DESC ;";
+	FROM ax_anschrift a JOIN ax_person p ON a.gml_id=ANY(p.hat) WHERE p.gml_id= $1 ORDER BY a.gml_id DESC ;";
 
 	$v = array($gmlid);
@@ -152,5 +153,5 @@
 
 	$sqlg ="SELECT n.gml_id AS gml_n, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, g.gml_id AS gml_g, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung as nr, g.blattart, b.bezeichnung AS beznam 
-	FROM ax_person p JOIN ax_namensnummer n ON substring(p.gml_id,1,16)=n.benennt JOIN ax_buchungsblatt g ON substring(g.gml_id,1,16)=n.istbestandteilvon 
+	FROM ax_person p JOIN ax_namensnummer n ON p.gml_id=n.benennt JOIN ax_buchungsblatt g ON g.gml_id=n.istbestandteilvon 
 	LEFT JOIN ax_buchungsblattbezirk b ON g.land=b.land AND g.bezirk=b.bezirk 
 	WHERE p.gml_id= $1 ORDER BY g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung;";
Index: trunk/info/info/alkis/alkisgebaeudenw.php
===================================================================
--- trunk/info/info/alkis/alkisgebaeudenw.php	(revision 336)
+++ trunk/info/info/alkis/alkisgebaeudenw.php	(revision 339)
@@ -10,4 +10,5 @@
 	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
 */
 session_start();
@@ -121,7 +122,7 @@
 
 // Entschluesseln
-$sqlg.="LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id 
-LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert 
-LEFT JOIN ax_gebaeude_zustand z ON g.zustand=z.wert 
+$sqlg.="LEFT JOIN v_geb_bauweise h ON g.bauweise=h.bauweise_id 
+LEFT JOIN v_geb_funktion u ON g.gebaeudefunktion=u.wert 
+LEFT JOIN v_geb_zustand z ON g.zustand=z.wert 
 WHERE f.gml_id= $1 AND f.endet IS NULL and g.endet IS NULL "; // ID des akt. FS
 
@@ -198,5 +199,5 @@
 			// HAUPTgebÃ€ude  Geb >zeigtAuf> lage (mehrere)
 			$sqll ="SELECT 'm' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.hausnummer, '' AS laufendenummer ";
-			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(g.zeigtauf) ";
+			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(g.zeigtauf) ";
 			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
 			$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL ";
@@ -204,5 +205,5 @@
 			// oder NEBENgebÃ€ude  Geb >hat> Pseudo
 			$sqll.="UNION SELECT 'p' AS ltyp, l.gml_id AS lgml, s.lage, s.bezeichnung, l.pseudonummer AS hausnummer, l.laufendenummer ";
-			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON substring(l.gml_id,1,16)=g.hat ";
+			$sqll.="FROM ax_gebaeude g JOIN ax_lagebezeichnungmitpseudonummer l ON l.gml_id=g.hat ";
 			$sqll.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage ";
 			$sqll.="WHERE g.gml_id= $1 AND g.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL "; // ID des Hauses"
Index: trunk/info/info/alkis/alkislage.php
===================================================================
--- trunk/info/info/alkis/alkislage.php	(revision 336)
+++ trunk/info/info/alkis/alkislage.php	(revision 339)
@@ -11,4 +11,5 @@
 	2014-09-03 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-15 Bei Relationen den Timestamp abschneiden
+	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
 
 	ToDo:
@@ -249,10 +250,10 @@
 	ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;";
 
-	$v = array(substr($gmlid,0,16)); // Relation nur mit 16 Stellen 
+	$v = array($gmlid);
 	$resf = pg_prepare("", $sql);
 	$resf = pg_execute("", $v);
 	if (!$resf) {
 		echo "<p class='err'>Fehler bei Flurst&uuml;ck.</p>\n";
-		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}	
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}	
 	}
 
@@ -369,13 +370,13 @@
 	}
 	$sql ="SELECT g.gml_id, g.gebaeudefunktion, g.name, g.bauweise, g.grundflaeche, g.zustand, round(area(g.wkb_geometry)::numeric,2) AS flaeche, h.bauweise_beschreibung, u.bezeichner 
-	FROM ax_gebaeude g LEFT JOIN ax_gebaeude_bauweise h ON g.bauweise=h.bauweise_id 
-	LEFT JOIN ax_gebaeude_funktion u ON g.gebaeudefunktion=u.wert WHERE $1 = ".$bezart." AND g.endet IS NULL;";
-
-	$v = array(substr($gmlid,0,16)); // 16 St. in Rel.
+	FROM ax_gebaeude g LEFT JOIN v_geb_bauweise h ON g.bauweise=h.bauweise_id 
+	LEFT JOIN v_geb_funktion u ON g.gebaeudefunktion=u.wert WHERE $1 = ".$bezart." AND g.endet IS NULL;";
+
+	$v = array($gmlid);
 	$res = pg_prepare("", $sql);
 	$res = pg_execute("", $v);
 	if (!$res) {
 		echo "<p class='err'>Fehler bei Geb&auml;ude.</p>\n";
-		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".substr($gmlid,0,16)."'</p>";}
+		if ($debug > 2) {echo "<p class='err'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";}
 	}
 	echo "\n<table class='geb'>";
Index: trunk/info/info/alkis/alkisfsnw.php
===================================================================
--- trunk/info/info/alkis/alkisfsnw.php	(revision 336)
+++ trunk/info/info/alkis/alkisfsnw.php	(revision 339)
@@ -22,4 +22,6 @@
 	2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-15 Bei Relationen den Timestamp abschneiden
+	2014-09-23 Korrektur "IS NULL"
+	2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix), RÃŒckbau substring(gml_id)
 
 	ToDo:
@@ -265,5 +267,5 @@
 // ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer
 $sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung 
-FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY(f.weistauf)  
+FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistauf)  
 JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
 WHERE f.gml_id= $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL    
@@ -315,5 +317,5 @@
 // ax_flurstueck  >zeigtAuf>  AX_LagebezeichnungOhneHausnummer
 $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung 
-FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf) 
+FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=ANY(f.zeigtauf) 
 LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
 WHERE f.gml_id = $1 AND f.endet IS NULL AND l.endet IS NULL AND s.endet IS NULL;";
@@ -502,5 +504,5 @@
 $sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, 
 b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key 
-FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung 
+FROM ax_bauraumoderbodenordnungsrecht b JOIN v_baurecht_adf a ON a.wert=b.artderfestlegung 
 LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle 
 WHERE b.endet IS NULL AND d.endet IS NULL  
@@ -511,5 +513,8 @@
 $res_bodeneuordnung = pg_execute($con, "bodeneuordnung", array($gmlid));
 
-$sql_str = "SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry);";
+$sql_str="SELECT gml_id 
+FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) 
+AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL),wkb_geometry);";
+
 pg_prepare($con, "strittigeGrenze", $sql_str);
 $res_strittigeGrenze = pg_execute($con, "strittigeGrenze", array($gmlid));
@@ -614,6 +619,6 @@
 // B U C H U N G S S T E L L E N  zum FS (istGebucht)
 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart 
-FROM ax_flurstueck f JOIN ax_buchungsstelle s ON substring(s.gml_id,1,16)=f.istgebucht 
-LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert 
+FROM ax_flurstueck f JOIN ax_buchungsstelle s ON s.gml_id=f.istgebucht 
+LEFT JOIN v_bs_buchungsart b ON s.buchungsart=b.wert 
 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;";
 
@@ -633,5 +638,5 @@
 	// B U C H U N G S B L A T T  zur Buchungsstelle (istBestandteilVon)
 	$sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung 
-	FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon 
+	FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON b.gml_id=s.istbestandteilvon 
 	LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
 	WHERE s.gml_id = $1 AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL
@@ -747,8 +752,8 @@
 	$sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, 
 	b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart 
-	FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) 
-	JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon  
+	FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON sd.gml_id=ANY(sh.an) 
+	JOIN ax_buchungsblatt b ON b.gml_id=sd.istbestandteilvon  
 	LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 
-	LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert 
+	LEFT JOIN v_bs_buchungsart a ON sd.buchungsart=a.wert 
 	WHERE sh.gml_id= $1 AND sh.endet IS NULL AND sd.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL
 	ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;";
Index: trunk/info/info/alkis/alkisexport.php
===================================================================
--- trunk/info/info/alkis/alkisexport.php	(revision 336)
+++ trunk/info/info/alkis/alkisexport.php	(revision 339)
@@ -15,4 +15,5 @@
 	2014-09-04 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer
 	2014-09-10 Bei Relationen den Timestamp abschneiden
+	2014-09-30 RÃŒckbau substring(gml_id)
 */
 
@@ -22,5 +23,5 @@
 	// FS >westAuf> Lage >> Katalog
 	$sql ="SELECT DISTINCT s.bezeichnung, l.hausnummer 
-	FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16)=ANY(f.weistauf)
+	FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id=ANY(f.weistauf)
 	JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 
 	WHERE f.gml_id= $1 ORDER BY s.bezeichnung, l.hausnummer;";
