<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://kvwmap.de/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://kvwmap.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules</id>
		<title>Validierung von Nutzereingaben über mehrere Rules - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://kvwmap.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules"/>
		<link rel="alternate" type="text/html" href="https://kvwmap.de/wiki/index.php?title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules&amp;action=history"/>
		<updated>2026-04-29T17:17:18Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in kvwmap</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>https://kvwmap.de/wiki/index.php?title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules&amp;diff=11662&amp;oldid=prev</id>
		<title>Markus Hentschel am 18. Oktober 2017 um 13:32 Uhr</title>
		<link rel="alternate" type="text/html" href="https://kvwmap.de/wiki/index.php?title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules&amp;diff=11662&amp;oldid=prev"/>
				<updated>2017-10-18T13:32:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 18. Oktober 2017, 13:32 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 53:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 53:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Regel für INSERT:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Regel für INSERT:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; CREATE OR REPLACE RULE z_hinweis_insert AS&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;nowiki&amp;gt;&lt;/ins&gt;CREATE OR REPLACE RULE z_hinweis_insert AS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ON INSERT TO tabelle_1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ON INSERT TO tabelle_1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; WHERE (&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; WHERE (&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 66:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; UPDATE tabellenpruefung SET hinweis = NULL&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; UPDATE tabellenpruefung SET hinweis = NULL&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; );&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/nowiki&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Regel für UPDATE:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Regel für UPDATE:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; CREATE OR REPLACE RULE z_hinweis_update AS&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;nowiki&amp;gt;&lt;/ins&gt;CREATE OR REPLACE RULE z_hinweis_update AS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ON UPDATE TO tabelle_1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ON UPDATE TO tabelle_1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; WHERE (&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; WHERE (&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 82:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 82:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; UPDATE tabellenpruefung SET hinweis = NULL&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; UPDATE tabellenpruefung SET hinweis = NULL&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; );&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/nowiki&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Damit ist der (letzte) Hinweis an kvwmap übergeben und die &amp;quot;tabellenprüfung&amp;quot; wieder leer für den nächsten Versuch des Nutzers.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Damit ist der (letzte) Hinweis an kvwmap übergeben und die &amp;quot;tabellenprüfung&amp;quot; wieder leer für den nächsten Versuch des Nutzers.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Markus Hentschel</name></author>	</entry>

	<entry>
		<id>https://kvwmap.de/wiki/index.php?title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules&amp;diff=11659&amp;oldid=prev</id>
		<title>Markus Hentschel am 18. Oktober 2017 um 13:25 Uhr</title>
		<link rel="alternate" type="text/html" href="https://kvwmap.de/wiki/index.php?title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules&amp;diff=11659&amp;oldid=prev"/>
				<updated>2017-10-18T13:25:01Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 18. Oktober 2017, 13:25 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn Nutzereingaben überprüft werden sollen, bieten sich an, eine Regel zu schreiben, die im Fehlerfall bestimmte Meldungen an kvwmap zurück gibt. Das entsprechende Verfahren der '''[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http://www.kvwmap.de/index.php/&lt;/del&gt;Admin-Dokumentation#Validierung_von_Nutzereingaben]]''' ist in der Admin-Doku gut erklärt. Was jedoch, wenn Eingaben in mehreren Attributen geprüft werden müssen? Man kann mehrere Regeln schreiben, aber: Nur die letzte der Regeln, die angewendet werden, löst (möglicherweise) den &amp;quot;DO INSTEAD&amp;quot;-Fall aus. Hat aber bereits eine andere Regel vorher ein Problem gemeldet, bekommt kvwmap davon nichts mit.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn Nutzereingaben überprüft werden sollen, bieten sich an, eine Regel zu schreiben, die im Fehlerfall bestimmte Meldungen an kvwmap zurück gibt. Das entsprechende Verfahren der '''[[Admin-Dokumentation#Validierung_von_Nutzereingaben&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Validierung von Nutzereingaben&lt;/ins&gt;]]''' ist in der Admin-Doku gut erklärt. Was jedoch, wenn Eingaben in mehreren Attributen geprüft werden müssen? Man kann mehrere Regeln schreiben, aber: Nur die letzte der Regeln, die angewendet werden, löst (möglicherweise) den &amp;quot;DO INSTEAD&amp;quot;-Fall aus. Hat aber bereits eine andere Regel vorher ein Problem gemeldet, bekommt kvwmap davon nichts mit.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Lösungsvorschlag:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Lösungsvorschlag:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Markus Hentschel</name></author>	</entry>

	<entry>
		<id>https://kvwmap.de/wiki/index.php?title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules&amp;diff=11658&amp;oldid=prev</id>
		<title>Markus Hentschel: Die Seite wurde neu angelegt: „Wenn Nutzereingaben überprüft werden sollen, bieten sich an, eine Regel zu schreiben, die im Fehlerfall bestimmte Meldungen an kvwmap zurück gibt. Das entsp…“</title>
		<link rel="alternate" type="text/html" href="https://kvwmap.de/wiki/index.php?title=Validierung_von_Nutzereingaben_%C3%BCber_mehrere_Rules&amp;diff=11658&amp;oldid=prev"/>
				<updated>2017-10-18T13:24:03Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Wenn Nutzereingaben überprüft werden sollen, bieten sich an, eine Regel zu schreiben, die im Fehlerfall bestimmte Meldungen an kvwmap zurück gibt. Das entsp…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Wenn Nutzereingaben überprüft werden sollen, bieten sich an, eine Regel zu schreiben, die im Fehlerfall bestimmte Meldungen an kvwmap zurück gibt. Das entsprechende Verfahren der '''[[http://www.kvwmap.de/index.php/Admin-Dokumentation#Validierung_von_Nutzereingaben]]''' ist in der Admin-Doku gut erklärt. Was jedoch, wenn Eingaben in mehreren Attributen geprüft werden müssen? Man kann mehrere Regeln schreiben, aber: Nur die letzte der Regeln, die angewendet werden, löst (möglicherweise) den &amp;quot;DO INSTEAD&amp;quot;-Fall aus. Hat aber bereits eine andere Regel vorher ein Problem gemeldet, bekommt kvwmap davon nichts mit.&lt;br /&gt;
&lt;br /&gt;
Lösungsvorschlag:&lt;br /&gt;
Der Text, der beim &amp;quot;DO INSTEAD&amp;quot; übergeben werden soll, wird in eine &amp;quot;Zwischentabelle&amp;quot; geschrieben. Eine letzte Regel prüft, ob in dieser &amp;quot;Zwischentabelle&amp;quot; was drin steht und übergibt das an kvwmap. Es steht immer nur der zuletzt erzeugte Hinweistext darin. Das macht aber nichts, denn kvwmap kann ja auch nur einen Text ausgeben.&lt;br /&gt;
&lt;br /&gt;
Diese &amp;quot;Zwischentabelle&amp;quot; ist denkbar einfach gestrickt:&lt;br /&gt;
 CREATE TABLE tabellenpruefung&lt;br /&gt;
 (&lt;br /&gt;
   tabelle character varying,&lt;br /&gt;
   hinweis character varying,&lt;br /&gt;
   message character varying&lt;br /&gt;
 )&lt;br /&gt;
 WITH (&lt;br /&gt;
   OIDS=TRUE&lt;br /&gt;
 );&lt;br /&gt;
Diese Tabelle kann in jedem Schema platziert werden und dient allen Tabellen im Schema gemeinsam. Im Attribut &amp;quot;tabelle&amp;quot; muss einfach nur einmalig jeder Tabellenname eingetragen werden, dessen Regeln hierhin schreiben sollen.&lt;br /&gt;
&lt;br /&gt;
Angenommen, es gibt eine Tabelle &amp;quot;tabelle_1&amp;quot; mit zwei Attributen &amp;quot;attribut1&amp;quot; und &amp;quot;attribut2&amp;quot;, die bei der Eingabe bzw. bei der Änderung überprüft werden sollen. Damit hätten wir schon mal 2 Rules für INSERT-Prüfungen und 2 Rules für UPDATE-Prüfungen. Diese füllen nun im &amp;quot;DO INSTEAD&amp;quot;-Fall die Tabelle &amp;quot;tabellenpruefung&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Regel 1:&lt;br /&gt;
 CREATE OR REPLACE RULE insert_pruefung_attribut1 AS&lt;br /&gt;
 ON INSERT TO tabelle_1&lt;br /&gt;
 WHERE &amp;lt; ... &amp;gt;&lt;br /&gt;
 DO INSTEAD &lt;br /&gt;
 UPDATE tabellenpruefung SET hinweis = 'Das ist bei Attribut 1 nicht erlaubt', message = 'error'&lt;br /&gt;
 WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
&lt;br /&gt;
Regel 2:&lt;br /&gt;
 CREATE OR REPLACE RULE insert_pruefung_attribut2 AS&lt;br /&gt;
 ON INSERT TO tabelle_1&lt;br /&gt;
 WHERE &amp;lt; ... &amp;gt;&lt;br /&gt;
 DO INSTEAD&lt;br /&gt;
 UPDATE tabellenpruefung SET hinweis = 'Das ist bei Attribut 2 nicht erlaubt', message = 'error'&lt;br /&gt;
 WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
&lt;br /&gt;
Regel 3:&lt;br /&gt;
 CREATE OR REPLACE RULE update_pruefung_attribut1 AS&lt;br /&gt;
 ON UPDATE TO tabelle_1&lt;br /&gt;
 WHERE &amp;lt; ... &amp;gt;&lt;br /&gt;
 DO INSTEAD&lt;br /&gt;
 UPDATE tabellenpruefung SET hinweis = 'Das ist bei Attribut 1 nicht erlaubt', message = 'error'&lt;br /&gt;
 WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
&lt;br /&gt;
Regel 4:&lt;br /&gt;
 CREATE OR REPLACE RULE update_pruefung_attribut2 AS&lt;br /&gt;
 ON UPDATE TO tabelle_1&lt;br /&gt;
 WHERE &amp;lt; ... &amp;gt;&lt;br /&gt;
 DO INSTEAD&lt;br /&gt;
 UPDATE tabellenpruefung SET hinweis = 'Das ist bei Attribut 2 nicht erlaubt', message = 'error'&lt;br /&gt;
 WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
&lt;br /&gt;
Damit wird die jeweils letzte Meldung festgehalten. Jetzt fehlt noch jeweils eine letzte Regel für INSERT und UPDATE, die den Inhalt der Meldung an kvwmap weitergibt. Da Regeln alphanumerisch sortiert abgearbeitet werden, fangen diese Regeln mit &amp;quot;z&amp;quot; an:&lt;br /&gt;
&lt;br /&gt;
Regel für INSERT:&lt;br /&gt;
 CREATE OR REPLACE RULE z_hinweis_insert AS&lt;br /&gt;
 ON INSERT TO tabelle_1&lt;br /&gt;
 WHERE (&lt;br /&gt;
  SELECT true AS bool&lt;br /&gt;
  FROM tabellenpruefung&lt;br /&gt;
  WHERE tabellenpruefung.tabelle = 'tabelle_1' AND tabellenpruefung.hinweis &amp;lt;&amp;gt; ''&lt;br /&gt;
 ) &lt;br /&gt;
 DO (&lt;br /&gt;
  SELECT tabellenpruefung.hinweis, tabellenpruefung.message as msg_type&lt;br /&gt;
  FROM tabellenpruefung&lt;br /&gt;
  WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
  UPDATE tabellenpruefung SET hinweis = NULL&lt;br /&gt;
  WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Regel für UPDATE:&lt;br /&gt;
 CREATE OR REPLACE RULE z_hinweis_update AS&lt;br /&gt;
 ON UPDATE TO tabelle_1&lt;br /&gt;
 WHERE (&lt;br /&gt;
  SELECT true AS bool&lt;br /&gt;
  FROM tabellenpruefung&lt;br /&gt;
  WHERE tabellenpruefung.tabelle = 'tabelle_1' AND tabellenpruefung.hinweis &amp;lt;&amp;gt; ''&lt;br /&gt;
 ) &lt;br /&gt;
 DO (&lt;br /&gt;
  SELECT tabellenpruefung.hinweis, tabellenpruefung.message as msg_type&lt;br /&gt;
  FROM tabellenpruefung&lt;br /&gt;
  WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
  UPDATE tabellenpruefung SET hinweis = NULL&lt;br /&gt;
  WHERE tabellenpruefung.tabelle = 'tabelle_1';&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Damit ist der (letzte) Hinweis an kvwmap übergeben und die &amp;quot;tabellenprüfung&amp;quot; wieder leer für den nächsten Versuch des Nutzers.&lt;/div&gt;</summary>
		<author><name>Markus Hentschel</name></author>	</entry>

	</feed>