Von Version < 71.1
bearbeitet von XIMA Admin
am 30.11.2020, 13:45
Auf Version < 69.1 >
bearbeitet von nlo
am 30.04.2020, 13:22
<
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.ximaadmin
1 +XWiki.nlo
Inhalt
... ... @@ -13,24 +13,6 @@
13 13  
14 14  
15 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 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 35  {{/html}}
36 36  
... ... @@ -43,7 +43,7 @@
43 43  
44 44  * Die eigentliche **SQL-Abfrage** wird im Editor in der Mitte einegeben (siehe [[Abbildung>>||anchor="data_db_query"]]).
45 45  
46 -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}}.
28 +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}}?{{/code}}.
47 47  
48 48  {{version major="6" minor="4" patch="0"/}} In den SQL-Statements können [[Platzhalter>>doc:Formcycle.UserInterface.Variables.WebHome]] verwendet werden.
49 49  
... ... @@ -51,7 +51,7 @@
51 51  
52 52  Die Datenbankabfrage ist innerhalb und außerhalb eines Formulars über das hierfür vorgesehene //Servlet// unter Verwendung der entsprechenden Parameter abrufbar. Die URL zur Datenbankabfrage lautet wie folgt:
53 53  
54 -{{code language="none"}}
36 +{{code}}
55 55  http://<server>/formcycle/datenabfragedb
56 56  {{/code}}
57 57  
... ... @@ -61,20 +61,15 @@
61 61  {{table dataTypeAlpha="0" preSort="0-asc"}}
62 62  |=Parametername|=Beschreibung|=Erforderlich
63 63  |name|Muss dem Namen der Datenbank-Abfrage entsprechen.|Ja
64 -|mandantName|Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenbank-Abfrage erstellt wurde.|Ja, wenn //projektId// nicht gegeben
46 +|mandantName|Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja, wenn //projektId// nicht gegeben
65 65  |projektId|Muss der ID des Formulars entsprechen. Diese Information kann über {{code language="javascript"}}XFC_METADATA.currentProject.id{{/code}} abgerufen werden.|Ja, wenn //mandantName// nicht gegeben
66 -|--sqlParameter--|Synonym für //queryParameter//. Sollte in {{formcycle/}} Version 6 nicht mehr verwendet werden und wird voraussichtlich in der nächsten Major-Version entfernt.|Nein
67 -|queryParameter|Nur erforderlich, wenn innerhalb der Datenbank-Abfrage Platzhalter in Form eines Fragezeichens verwendet werden. Ist dies der Fall, so entspricht dieser der komma-separierten Listen der zu verwendeten Parameter.
68 -
69 -Wenn möglich sollte für neue Projekte anstelle des Parameters //queryParameter// der Parameter //queryParameterValues// verwendet werden, da //queryParameter// in einer zukünftigen Version von {{formcycle/}} nicht mehr unterstützt werden wird.|Nein
70 -|delimiter|Trennzeichen, welches die einzelnen Werte des //queryParameter// trennt. Standardmäßig ein Komma {{code language="none"}},{{/code}}.
71 -
72 -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
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
48 +|sqlParameter|Synonym für //queryParameter//. Sollte nicht mehr verwendet werden ab Version 6 und wird es in späteren Versionen nicht mehr geben.|
49 +|queryParameter|Nur erforderlich, wenn innerhalb der Datenbank-Datenquelle Platzhalter in Form eines Fragezeichens verwendet werden. Ist dies der Fall, so entspricht dieser der komma-separierten Listen der zu verwendeten Parameter. (ab Version 6)|Nein
74 74  |varName|Gibt den Namen des JSON-Response-Objektes an. Ist dieser nicht gesetzt, so besitzt das JSON-Objekt keinen expliziten Namen.|Nein
51 +|delimiter|Trennzeichen, welches die einzelnen Werte des //queryParameter// trennt. Standardmäßig ein Komma {{code}},{{/code}}.|Nein
75 75  {{/table}}
76 76  
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 +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}}.
78 78  
79 79  Ferner empfehlen wir, innerhalb des Formulars die JavaScript-Funktion {{jsdoc page="xutil" name="getdataquery"/}} zu verwenden, die das manuelle Aufbauen der Servlet-Abfrage erspart.
80 80  
... ... @@ -83,7 +83,7 @@
83 83  == Testen der Abfrage ==
84 84  
85 85  {{info}}
86 -Zum schnellen Testen der Abfrage steht die Tastenkombination {{code language="none"}}Strg + Enter{{/code}} zur Verfügung.
63 +Zum schnellen Testen der Abfrage steht die Tastenkombination {{code}}Strg + Enter{{/code}} zur Verfügung.
87 87  {{/info}}
88 88  
89 89  Datenbank-Abfragen können direkt in der Konfigurationsoberfläche getestet werden. Hierzu steht eine Testkonsole unterhalb des SQL-Editors zur Verfügung (siehe [[Abbildung>>||anchor="data_db_query"]]).
... ... @@ -90,9 +90,9 @@
90 90  Im Header der Testkonsole befindet sich eine Reihe von Buttons zur Steuerung der Abfrage:
91 91  
92 92  * {{ficon name="database-search"/}}**Abfrage ausführen**
93 -Führt die Datenbank-Abfrage aus. Werden //Abfrageparameter// ({{code language="none"}}?{{/code}}) verwendet, wird der Nutzer aufgefordert Werte für diese Parameter einzugeben. Ist dies nicht der Fall wird das Ergebnis der Abfrage direkt in der //Tabellenansicht// dargestellt.{{lightbox image="data_db_query_test_de.png" title="Abfrage ausführen"/}}
70 +Führt die Datenbank-Abfrage aus. Werden //Abfrageparameter// ({{code}}?{{/code}}) verwendet, wird der Nutzer aufgefordert Werte für diese Parameter einzugeben. Ist dies nicht der Fall wird das Ergebnis der Abfrage direkt in der //Tabellenansicht// dargestellt.{{lightbox image="data_db_query_test_de.png" title="Abfrage ausführen"/}}
94 94  * {{icon name="question"/}}**Abfrageparameter**
95 -Maske zum Eingeben von Werten für Abfrageparameter. Diese Option steht nur zur Verfügung, wenn Abfrageparameter ({{code language="none"}}?{{/code}}) in der SQL-Abfrage verwendet werden. Die einzelnen Abfrageparameter werden nummeriert im SQL-Query dargestellt. Ein Klick auf "Parameter für Abfrage verwenden" {{ficon name="arrow-right-bold-circle-outline2"/}} führt die Abfrage mit den eingebenen Parametern aus. Das Ergebnis wird in der //Tabellenansicht// dargestellt.
72 +Maske zum Eingeben von Werten für Abfrageparameter. Diese Option steht nur zur Verfügung, wenn Abfrageparameter ({{code}}?{{/code}}) in der SQL-Abfrage verwendet werden. Die einzelnen Abfrageparameter werden nummeriert im SQL-Query dargestellt. Ein Klick auf "Parameter für Abfrage verwenden" {{ficon name="arrow-right-bold-circle-outline2"/}} führt die Abfrage mit den eingebenen Parametern aus. Das Ergebnis wird in der //Tabellenansicht// dargestellt.
96 96   {{lightbox image="data_db_query_test_param_de.png" title="Die Paramter der Abfrage werden nummeriert."/}}
97 97  Eigentliche Abfrage im SQL-Editor:{{lightbox image="data_db_query_example_de.png" title="Beispielabfrage"/}}
98 98  * {{ficon name="table-large"/}}**Tabellenansicht**
... ... @@ -106,10 +106,6 @@
106 106  
107 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"/}}.
108 108  
109 -{{info}}
110 -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.
111 -{{/info}}
112 -
113 113  {{figure image="data_db_query_designer_de.png"}}
114 114  Verwenden des Ergebnises einer Datenbankabfrage als Datenquelle für ein Auswahlelement im {{designer case="dat"/}}.
115 115  {{/figure}}
... ... @@ -132,11 +132,6 @@
132 132  
133 133  == Beipiele ==
134 134  
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 -
140 140  {{code language="sql"}}
141 141  select name, vorname from tabelle where vorname like(?)
142 142  {{/code}}
... ... @@ -143,12 +143,8 @@
143 143  
144 144  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.
145 145  
146 -Abfrage per Servlet:
147 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Mustermann{{/code}}
114 +Abfrage per Servlet: {{code}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Mustermann{{/code}}
148 148  
149 -{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
150 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=Mustermann{{/code}}
151 -\\
152 152  
153 153  {{code language="sql"}}
154 154  select name, vorname from tabelle where id=?
... ... @@ -156,12 +156,8 @@
156 156  
157 157  Diese SQL-Abfrage liefert die Person mit einer bestimmten ID zurück. Die ID wird als URL-Parameter übergeben.
158 158  
159 -Abfrage per Servlet:
160 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=100{{/code}}
123 +Abfrage per Servlet: {{code}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=100{{/code}}
161 161  
162 -{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
163 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=100{{/code}}
164 -\\
165 165  
166 166  {{code language="sql"}}
167 167  select name, vorname from tabelle where ort like(?) AND plz = ?
... ... @@ -169,12 +169,8 @@
169 169  
170 170  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.
171 171  
172 -Abfrage per Servlet:
173 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Entenhausen,02442{{/code}}
132 +Abfrage per Servlet: {{code}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Entenhausen,02442{{/code}}
174 174  
175 -{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
176 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=Entenhausen&queryParameterValues=02442{{/code}}
177 -\\
178 178  
179 179  {{code language="sql"}}
180 180  select name, vorname from tabelle where ort like concat(?, '%')
... ... @@ -182,12 +182,8 @@
182 182  
183 183  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.
184 184  
185 -Abfrage per Servlet:
186 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Entenhau{{/code}}
141 +Abfrage per Servlet: {{code}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=Entenhau{{/code}}
187 187  
188 -{{version major="6" minor="6" patch="3"/}}Ab {{formcycle/}} Version 6.6.3 mögliche Abfrage per Servlet:
189 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=Entenhau{{/code}}
190 -\\
191 191  
192 192  {{code language="sql"}}
193 193  select name, vorname from tabelle where lower(ort) like concat('%', lower(?), '%')
... ... @@ -195,8 +195,4 @@
195 195  
196 196  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.
197 197  
198 -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:
202 -{{code language="none"}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameterValues=teHaUs{{/code}}
150 +Abfrage per Servlet: {{code}}http://meinserver/formcycle/datenquelledb?mandantName=ich&name=demo&queryParameter=teHaUs{{/code}}
Copyright 2000-2024