Änderungen von Dokument DB-Abfragen


Von Version 12.1
bearbeitet von jdr
am 19.07.2021, 14:09
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.1
bearbeitet von XIMA Admin
am 20.01.2021, 16:22
Änderungskommentar: Imported from XAR

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.jdr
1 +XWiki.ximaadmin
Inhalt
... ... @@ -11,6 +11,30 @@
11 11  {{id name="data_db_query"/}}
12 12  {{figure image="data_db_query_de.png"}}Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.{{/figure}}
13 13  
14 +
15 +{{html wiki="true"}}
16 +<div class='xm-figure xm-float-right xm-clear-h2' data-alt='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'><div class='xm-figure-inner' style='width:310px'>{{lightbox image='data_db_query_de.png' width='300' group='$height' group='$group' title='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'/}}<div class='xm-figure-caption'>Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.</div></div></div>
17 +{{/html}}
18 +
19 +
20 +
21 +{{html wiki="true"}}
22 +<div class='xm-figure xm-float-right xm-clear-h2' data-alt='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'><div class='xm-figure-inner' style='width:310px'>{{lightbox image='data_db_query_de.png' width='300' group='$height' group='$group' title='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'/}}<div class='xm-figure-caption'>Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.</div></div></div>
23 +{{/html}}
24 +
25 +
26 +
27 +{{html wiki="true"}}
28 +<div class='xm-figure xm-float-right xm-clear-h2' data-alt='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'><div class='xm-figure-inner' style='width:310px'>{{lightbox image='data_db_query_de.png' width='300' group='$height' group='$group' title='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'/}}<div class='xm-figure-caption'>Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.</div></div></div>
29 +{{/html}}
30 +
31 +
32 +
33 +{{html wiki="true"}}
34 +<div class='xm-figure xm-float-right xm-clear-global' data-alt='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'><div class='xm-figure-inner' style='width:310px'>{{lightbox image='data_db_query_de.png' width='300' group='$height' group='$group' title='Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.'/}}<div class='xm-figure-caption'>Die Konfigurationsoberfläche zum Anlegen einer SQL-Abfrage besteht aus vier Teilen: (1) Liste der existierenden Datenbank-Abfragen, (2) Editor zum Definieren der SQL-Abfrage, (3) Einstellungen der Datenbank-Abfrage, (4) Konsole zum Testen der Datenbank-Abfrage.</div></div></div>
35 +{{/html}}
36 +
37 +
14 14  * Öffnen Sie das Modul "DB-Abfragen" und klicken Sie auf die Schaltfläche "Neu" {{ficon name="plus-circle-outline"/}} in der Kopzeile der Liste (siehe [[Abbildung>>||anchor="fig_data_db_query"]]).
15 15  * Für die Datenbank-Abfrage werden folgende Daten benötigt:
16 16  ** **Name**: Ein eindeutiger Name der Datenbank-Abfrage
... ... @@ -21,7 +21,7 @@
21 21  
22 22  Das eingegebene Statement wird als //Prepared-Statement// ausgeführt, so dass keine sogenannte //SQL-Injection// moglich ist. Verwenden Sie daher auch keine Hochkommas. Prinzipiell können auch Übergabeparameter verwendet werden. In der Abfrage setzen Sie an die Stelle des Übergabeparameters ein Fragezeichen {{code language="none"}}?{{/code}}.
23 23  
24 -In den SQL-Statements können [[Platzhalter>>doc:Formcycle.UserInterface.Variables.WebHome]] verwendet werden.
48 +{{version major="6" minor="4" patch="0"/}} In den SQL-Statements können [[Platzhalter>>doc:Formcycle.UserInterface.Variables.WebHome]] verwendet werden.
25 25  
26 26  == Verwenden der Abfrage ==
27 27  
... ... @@ -46,11 +46,11 @@
46 46  |delimiter|Trennzeichen, welches die einzelnen Werte des //queryParameter// trennt. Standardmäßig ein Komma {{code language="none"}},{{/code}}.
47 47  
48 48  Wenn möglich sollte für neue Projekte anstelle der Parameter //delimiter// und //queryParameter// der Parameter //queryParameterValues// verwendet werden, da //delimiter// in einer zukünftigen Version von {{formcycle/}} nicht mehr unterstützt werden wird.|Nein
49 -|queryParameterValues|Ab {{formcycle/}} Version 6.6.3 zur Verfügung stehende Alternative zu den Parametern //queryParameter// und //delimiter//. Wie diese Parameter ist auch //queryParameterValues// nur dann erforderlich, wenn innerhalb der Datenbank-Abfrage Platzhalter in Form eines Fragezeichens {{code language="none"}}?{{/code}} verwendet werden. Ist dies der Fall, werden die einzelnen Abfrageparameter hintereinander jeweils als ein eingener Parameter //queryParameterValues// übergegeben, wodurch auch die Verwendung des Parameters //delimiter// entfällt.|Nein
73 +|queryParameterValues|{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 zur Verfügung stehende Alternative zu den Parametern //queryParameter// und //delimiter//. Wie diese Parameter ist auch //queryParameterValues// nur dann erforderlich, wenn innerhalb der Datenbank-Abfrage Platzhalter in Form eines Fragezeichens {{code language="none"}}?{{/code}} verwendet werden. Ist dies der Fall, werden die einzelnen Abfrageparameter hintereinander jeweils als ein eingener Parameter //queryParameterValues// übergegeben, wodurch auch die Verwendung des Parameters //delimiter// entfällt.|Nein
50 50  |varName|Gibt den Namen des JSON-Response-Objektes an. Ist dieser nicht gesetzt, so besitzt das JSON-Objekt keinen expliziten Namen.|Nein
51 51  {{/table}}
52 52  
53 -Bei Zugriff aus einem Formular verwenden Sie bitte immer das globale Variablenobjekt //XFC_METADATA//, siehe hierzu auch die [[Metadaten>>doc:Formcycle.Designer.Form.CodingPanel.ScriptTab.FormMetadata]]. In diesem Objekt stehen alle relevanten URLs von {{formcycle case="dat"/}} zur Verfügung, sodass diese Beispielhaft wie folgt ermittelt werden kann: {{code language="javascript"}}XFC_METADATA.urls.datasource_db{{/code}}.
77 +Bei Zugriff aus einem Formular verwenden Sie bitte immer das globale Variablenobjekt //XFC_METADATA//, siehe hierzu auch die [[Metadaten>>doc:Formcycle.FormDesigner.CodingPanel.ScriptTab.FormMetadata]]. In diesem Objekt stehen alle relevanten URLs von {{formcycle case="dat"/}} zur Verfügung, sodass diese Beispielhaft wie folgt ermittelt werden kann: {{code language="javascript"}}XFC_METADATA.urls.datasource_db{{/code}}.
54 54  
55 55  Ferner empfehlen wir, innerhalb des Formulars die JavaScript-Funktion {{jsdoc page="xutil" name="getdataquery"/}} zu verwenden, die das manuelle Aufbauen der Servlet-Abfrage erspart.
56 56  
... ... @@ -80,7 +80,7 @@
80 80  
81 81  == Sonderfall Auswahlelement ==
82 82  
83 -Soll das Ergebnis einer Datenbankabfrage direkt in ein [[Auswahlelement>>doc:Formcycle.Designer.Form.FormElements.Selection]] geladen werden, erfolgt dies über die Eigenschaften des Auswahlelements im {{designer case="dat"/}}.
107 +Soll das Ergebnis einer Datenbankabfrage direkt in ein [[Auswahlelement>>doc:Formcycle.FormDesigner.FormElements.Selection]] geladen werden, erfolgt dies über die Eigenschaften des Auswahlelements im {{designer case="dat"/}}.
84 84  
85 85  {{info}}
86 86  Abfragen die in Auswahlelementen eingesetzt werden, dürfen kein "?" beinhalten, da diese Abfragen einen Übergabeparameter erwarten und dies bei Auswahlelementen nicht möglich ist. Abfragen mit einem "?" werden nicht als Datenquelle bei Auswahlelementen angeboten.
... ... @@ -90,7 +90,7 @@
90 90  Verwenden des Ergebnises einer Datenbankabfrage als Datenquelle für ein Auswahlelement im {{designer case="dat"/}}.
91 91  {{/figure}}
92 92  
93 -Der Inhalt der SQL-Datenbankabfrage wird in einem [[Auswahlelement>>doc:Formcycle.Designer.Form.FormElements.Selection]] in folgender Reihenfolge verwendet.
117 +Der Inhalt der SQL-Datenbankabfrage wird in einem [[Auswahlelement>>doc:Formcycle.FormDesigner.FormElements.Selection]] in folgender Reihenfolge verwendet.
94 94  
95 95  {{box}}
96 96  Sichtbarer Wert, Übertragener Wert, Optionaler Wert 1, Optionaler Wert 2, ...
... ... @@ -108,6 +108,11 @@
108 108  
109 109  == Beipiele ==
110 110  
135 +{{info}}
136 +{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 kann Anstelle des Parameters //queryParameter// der Parameter //queryParameterValues// verwendet werden. Letzterer wird für neue Projekte empfohlen, da der Parameter //queryParameter// in einer zukünftigen Version von {{formcycle/}} nicht mehr unterstützt werden wird. In den folgenden Beispielen wird für jede SQL-Abfrage daher jeweils eine Servlet-Abfrage mit //queryParameter// und mit //queryParameterValues// gezeigt.
137 +{{/info}}
138 +
139 +
111 111  {{code language="sql"}}
112 112  select name, vorname from tabelle where vorname like(?)
113 113  {{/code}}
... ... @@ -115,6 +115,9 @@
115 115  Diese SQL-Abfrage liefert die Namen aller Personen zurück, die einen bestimmten Vornamen haben. Nach welchem Vornamen gesucht werden soll, kann über einen URL-Parameter angegeben werden.
116 116  
117 117  Abfrage per Servlet:
147 +{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Mustermann{{/code}}
148 +
149 +{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
118 118  {{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=Mustermann{{/code}}
119 119  \\
120 120  
... ... @@ -125,6 +125,9 @@
125 125  Diese SQL-Abfrage liefert die Person mit einer bestimmten ID zurück. Die ID wird als URL-Parameter übergeben.
126 126  
127 127  Abfrage per Servlet:
160 +{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=100{{/code}}
161 +
162 +{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
128 128  {{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=100{{/code}}
129 129  \\
130 130  
... ... @@ -135,6 +135,9 @@
135 135  Diese SQL-Abfrage liefert die Namen aller Personen zurück, die an einem bestimmten Ort wohnen. Der Ort mit Postleitzahl wird über URL-Parameter übergeben.
136 136  
137 137  Abfrage per Servlet:
173 +{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Entenhausen,02442{{/code}}
174 +
175 +{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
138 138  {{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=Entenhausen&queryParameterValues=02442{{/code}}
139 139  \\
140 140  
... ... @@ -145,8 +145,11 @@
145 145  Diese SQL-Abfrage liefert die Namen aller Personen zurück, die in einem Ort wohnen der mit den gesuchten Buchstaben/Zeichen **beginnt**. Das '%'-Zeichen dient als Platzhalter für beliebig viele beliebige Zeichen. Je nach verwendetem DBMS kann die Syntax geringfügig abweichen (hier: MySQL). Der gesuchte Wert wird über URL-Parameter übergeben.
146 146  
147 147  Abfrage per Servlet:
186 +{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Entenhau{{/code}}
187 +
188 +{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
148 148  {{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=Entenhau{{/code}}
149 -\\
190 +\\
150 150  
151 151  {{code language="sql"}}
152 152  select name, vorname from tabelle where lower(ort) like concat('%', lower(?), '%')
... ... @@ -155,4 +155,7 @@
155 155  Diese SQL-Abfrage liefert die Namen aller Personen zurück, die in einem Ort wohnen der die gesuchten Buchstaben/Zeichen **beinhaltet**. Hierbei ist spielt die Klein/Groß-Schreibung keine Rolle, da die Abfrage in der Datenbank sowohl die Werte-Spalte als auch den eigentlichen Filter-Wert zu Kleinschreibung umwandelt (lower(...)). Der gesuchte Wert wird über URL-Parameter übergeben.
156 156  
157 157  Abfrage per Servlet:
199 +{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=teHaUs{{/code}}
200 +
201 +{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
158 158  {{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=teHaUs{{/code}}