M:\romaSql-1.0.2\queryBuilder.au3 F:\_Archive\_Programmieren\AutoIt3\User\4ern\romaSql-1.0.2\queryBuilder.au3
1;-- TIME_STAMP   2017-03-05 20:00:22   v 0.1    
2    
3#include-once 1#include-once
4#include <queryBuilder.au3>  2; #FUNCTION# ==================================================================================================================== 
  3; Author ........: 4ern.de  
  4; Description....: AU3 Check Syntax  
  5; Source.........: romaSql.au3  
  6; ===============================================================================================================================  
  7#ignorefunc __4ern_SQL_Connection  
  8#ignorefunc __4ern_SQL_rawQuery  
  9#ignorefunc __4ern_SQL_Console  
  10#ignorefunc __4ern_SQL__IsDefault  
5  11 
6; #FUNCTION# ==================================================================================================================== 12; #FUNCTION# ====================================================================================================================
7; Author ........: 4ern.de 13; Author ........: 4ern.de
8; Description....: SQL GROUP BY Statement 14; Description....: SQL GROUP BY Statement
9; Source.........: http://www.w3schools.com/sql/sql_groupby.asp 15; Source.........: http://www.w3schools.com/sql/sql_groupby.asp
10; =============================================================================================================================== 16; ===============================================================================================================================
11Func __4ern_SQL__QueryBuilder__groupBy($ACTION = Default, $COLM = Default) 17Func __4ern_SQL__QueryBuilder__groupBy($ACTION = Default, $COLM = Default)
12    ;----------------------------------------------------------------------------------------------/ 18    ;----------------------------------------------------------------------------------------------/
13    ; Eigenschaften 19    ; Eigenschaften
14    ;----------------------------------------------------------------------------------------------/ 20    ;----------------------------------------------------------------------------------------------/
15    Local Static $QUEUE = ObjCreate("System.Collections.Queue") 21    Local Static $QUEUE = ObjCreate("System.Collections.Queue")
16    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store' 22    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store'
17  23 
18    ;----------------------------------------------------------------------------------------------/ 24    ;----------------------------------------------------------------------------------------------/
19    ; AKTION 25    ; AKTION
20    ;----------------------------------------------------------------------------------------------/ 26    ;----------------------------------------------------------------------------------------------/
21    Switch $ACTION 27    Switch $ACTION
22  28 
23        ;----------------------------------------------------------------------------------------------/ 29        ;----------------------------------------------------------------------------------------------/
24        ; Speichere die Select spalten in eine Queue 30        ; Speichere die Select spalten in eine Queue
25        ;----------------------------------------------------------------------------------------------/ 31        ;----------------------------------------------------------------------------------------------/
26        Case 'store' 32        Case 'store'
27            If IsString($COLM) Then $QUEUE.Enqueue(StringFormat('AND %s ', $COLM)) 33            If IsString($COLM) Then $QUEUE.Enqueue(StringFormat('AND %s ', $COLM))
28            Return 1 34            Return 1
29   35             
30            ;----------------------------------------------------------------------------------------------/ 36            ;----------------------------------------------------------------------------------------------/
31            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String 37            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String
32            ;----------------------------------------------------------------------------------------------/ 38            ;----------------------------------------------------------------------------------------------/
33        Case 'get' 39        Case 'get'
34  40 
35            Local $SQL = 'GROUP BY ' 41            Local $SQL = 'GROUP BY '
36  42 
37            ;----------------------------------------------------------------------------------------------/ 43            ;----------------------------------------------------------------------------------------------/
38            ; Wenn keine Einträge vorhanden, dann * 44            ; Wenn keine Einträge vorhanden, dann *
39            ;----------------------------------------------------------------------------------------------/ 45            ;----------------------------------------------------------------------------------------------/
40            If $QUEUE.Count = 0 Then Return '' 46            If $QUEUE.Count = 0 Then Return ''
41  47 
42            ;----------------------------------------------------------------------------------------------/ 48            ;----------------------------------------------------------------------------------------------/
43            ; Erstelle String 49            ; Erstelle String
44            ;----------------------------------------------------------------------------------------------/ 50            ;----------------------------------------------------------------------------------------------/
45            For $elemet In $QUEUE 51            For $elemet In $QUEUE
46                $SQL &= $elemet 52                $SQL &= $elemet
47            Next 53            Next
48  54 
49            ;----------------------------------------------------------------------------------------------/ 55            ;----------------------------------------------------------------------------------------------/
50            ; Lösche alle Einträge aus der Queue 56            ; Lösche alle Einträge aus der Queue
51            ;----------------------------------------------------------------------------------------------/ 57            ;----------------------------------------------------------------------------------------------/
52            $QUEUE.clear 58            $QUEUE.clear
53  59 
54            ;----------------------------------------------------------------------------------------------/ 60            ;----------------------------------------------------------------------------------------------/
55            ; Return 61            ; Return
56            ;----------------------------------------------------------------------------------------------/ 62            ;----------------------------------------------------------------------------------------------/
57            Return StringStripWS(StringReplace($SQL, 'BY AND', 'BY', 1), 4) 63            Return StringStripWS(StringReplace($SQL, 'BY AND', 'BY', 1), 4)
58    EndSwitch 64    EndSwitch
59EndFunc   ;==>__4ern_SQL__QueryBuilder__groupBy 65EndFunc   ;==>__4ern_SQL__QueryBuilder__groupBy
60  66 
61; #FUNCTION# ==================================================================================================================== 67; #FUNCTION# ====================================================================================================================
62; Author ........: 4ern.de 68; Author ........: 4ern.de
63; Description....: To limit the number of results returned from the query 69; Description....: To limit the number of results returned from the query
64; =============================================================================================================================== 70; ===============================================================================================================================
65Func __4ern_SQL__QueryBuilder__limit($pLIMIT = Default, $ACTION = 'set') 71Func __4ern_SQL__QueryBuilder__limit($pLIMIT = Default, $ACTION = 'set')
66   72     
67    Local Static $limit = Null 73    Local Static $limit = Null
68  74 
69    Switch $ACTION 75    Switch $ACTION
70        Case 'set' 76        Case 'set'
71            If IsNumber($pLIMIT) Then 77            If IsNumber($pLIMIT) Then
72                $limit = $pLIMIT 78                $limit = $pLIMIT
73                Return 79                Return
74            EndIf 80            EndIf
75            __4ern_SQL_Console('error', 'TAKE/LIMIT -- QUERY BUILDER', 'Keine gueltige Nummer') 81            __4ern_SQL_Console('error', 'TAKE/LIMIT -- QUERY BUILDER', 'Keine gueltige Nummer')
76  82 
77        Case 'get' 83        Case 'get'
78            If $limit = Null Then Return '' 84            If $limit = Null Then Return ''
79  85 
80            Local $defDatabase = __4ern_SQL_Connection() 86            Local $defDatabase = __4ern_SQL_Connection()
81            ;----------------------------------------------------------------------------------------------/ 87            ;----------------------------------------------------------------------------------------------/
82            ; Return TOP für SQL Server Syntax 88            ; Return TOP für SQL Server Syntax
83            ;----------------------------------------------------------------------------------------------/ 89            ;----------------------------------------------------------------------------------------------/
84            If ($defDatabase = 'sqlserver') Then Return StringFormat(' TOP %s ', $limit) 90            If ($defDatabase = 'sqlserver') Then Return StringFormat(' TOP %s ', $limit)
85  91 
86            ;----------------------------------------------------------------------------------------------/ 92            ;----------------------------------------------------------------------------------------------/
87            ; Setze eine Where Abfrage für Oracle Syntax 93            ; Setze eine Where Abfrage für Oracle Syntax
88            ;----------------------------------------------------------------------------------------------/ 94            ;----------------------------------------------------------------------------------------------/
89            If ($defDatabase = 'oracle') Then 95            If ($defDatabase = 'oracle') Then
90                __4ern_SQL_Query_where('ROWNUM', '<=', $limit) 96                __4ern_SQL_Query_where('ROWNUM', '<=', $limit)
91                Return '' 97                Return ''
92            EndIf 98            EndIf
93  99 
94            ;----------------------------------------------------------------------------------------------/ 100            ;----------------------------------------------------------------------------------------------/
95            ; Return LIMIT 101            ; Return LIMIT
96            ;----------------------------------------------------------------------------------------------/ 102            ;----------------------------------------------------------------------------------------------/
97            Return StringFormat(' LIMIT %s ', $limit) 103            Return StringFormat(' LIMIT %s ', $limit)
98    EndSwitch 104    EndSwitch
99EndFunc   ;==>__4ern_SQL__QueryBuilder__limit 105EndFunc   ;==>__4ern_SQL__QueryBuilder__limit
100  106 
101; #FUNCTION# ==================================================================================================================== 107; #FUNCTION# ====================================================================================================================
102; Author ........: 4ern.de 108; Author ........: 4ern.de
103; Description....: SQL ORDER BY Keyword 109; Description....: SQL ORDER BY Keyword
104; Source.........: http://www.w3schools.com/sql/sql_orderby.asp 110; Source.........: http://www.w3schools.com/sql/sql_orderby.asp
105; =============================================================================================================================== 111; ===============================================================================================================================
106Func __4ern_SQL__QueryBuilder__Orderby($ACTION = Default, $COLM = Default) 112Func __4ern_SQL__QueryBuilder__Orderby($ACTION = Default, $COLM = Default)
107    ;----------------------------------------------------------------------------------------------/ 113    ;----------------------------------------------------------------------------------------------/
108    ; Eigenschaften 114    ; Eigenschaften
109    ;----------------------------------------------------------------------------------------------/ 115    ;----------------------------------------------------------------------------------------------/
110    Local Static $QUEUE = ObjCreate("System.Collections.Queue") 116    Local Static $QUEUE = ObjCreate("System.Collections.Queue")
111    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store' 117    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store'
112  118 
113    ;----------------------------------------------------------------------------------------------/ 119    ;----------------------------------------------------------------------------------------------/
114    ; AKTION 120    ; AKTION
115    ;----------------------------------------------------------------------------------------------/ 121    ;----------------------------------------------------------------------------------------------/
116    Switch $ACTION 122    Switch $ACTION
117  123 
118        ;----------------------------------------------------------------------------------------------/ 124        ;----------------------------------------------------------------------------------------------/
119        ; Speichere die Select spalten in eine Queue 125        ; Speichere die Select spalten in eine Queue
120        ;----------------------------------------------------------------------------------------------/ 126        ;----------------------------------------------------------------------------------------------/
121        Case 'store' 127        Case 'store'
122            ;----------------------------------------------------------------------------------------------/ 128            ;----------------------------------------------------------------------------------------------/
123            ; Array Verarbeitung 129            ; Array Verarbeitung
124            ;   -> Ansonsten String 130            ;   -> Ansonsten String
125            ;----------------------------------------------------------------------------------------------/ 131            ;----------------------------------------------------------------------------------------------/
126            If IsString($COLM) Then $QUEUE.Enqueue($COLM) 132            If IsString($COLM) Then $QUEUE.Enqueue($COLM)
127   133             
128            ;----------------------------------------------------------------------------------------------/ 134            ;----------------------------------------------------------------------------------------------/
129            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String 135            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String
130            ;----------------------------------------------------------------------------------------------/ 136            ;----------------------------------------------------------------------------------------------/
131        Case 'get' 137        Case 'get'
132  138 
133            $String = 'ORDER BY ' 139            $String = 'ORDER BY '
134            ;----------------------------------------------------------------------------------------------/ 140            ;----------------------------------------------------------------------------------------------/
135            ; Wenn keine Einträge vorhanden, dann * 141            ; Wenn keine Einträge vorhanden, dann *
136            ;----------------------------------------------------------------------------------------------/ 142            ;----------------------------------------------------------------------------------------------/
137            If $QUEUE.Count = 0 Then Return '' 143            If $QUEUE.Count = 0 Then Return ''
138  144 
139            ;----------------------------------------------------------------------------------------------/ 145            ;----------------------------------------------------------------------------------------------/
140            ; Erstelle String 146            ; Erstelle String
141            ;----------------------------------------------------------------------------------------------/ 147            ;----------------------------------------------------------------------------------------------/
142            For $elemet In $QUEUE 148            For $elemet In $QUEUE
143                $String &= $elemet & ', ' 149                $String &= $elemet & ', '
144            Next 150            Next
145  151 
146            ;----------------------------------------------------------------------------------------------/ 152            ;----------------------------------------------------------------------------------------------/
147            ; Lösche alle Einträge aus der Queue 153            ; Lösche alle Einträge aus der Queue
148            ;----------------------------------------------------------------------------------------------/ 154            ;----------------------------------------------------------------------------------------------/
149            $QUEUE.clear 155            $QUEUE.clear
150            ;----------------------------------------------------------------------------------------------/ 156            ;----------------------------------------------------------------------------------------------/
151            ; Return 157            ; Return
152            ;----------------------------------------------------------------------------------------------/ 158            ;----------------------------------------------------------------------------------------------/
153            Return StringReplace($String, ',', '', -1) 159            Return StringReplace($String, ',', '', -1)
154    EndSwitch 160    EndSwitch
155EndFunc   ;==>__4ern_SQL__QueryBuilder__Orderby 161EndFunc   ;==>__4ern_SQL__QueryBuilder__Orderby
156  162 
157; #FUNCTION# ==================================================================================================================== 163; #FUNCTION# ====================================================================================================================
158; Author ........: 4ern.de 164; Author ........: 4ern.de
159; Description....: SELECT & DISTINCT Statement 165; Description....: SELECT & DISTINCT Statement
160; Source.........: http://www.w3schools.com/sql/sql_select.asp 166; Source.........: http://www.w3schools.com/sql/sql_select.asp
161; Source.........: http://www.w3schools.com/sql/sql_distinct.asp 167; Source.........: http://www.w3schools.com/sql/sql_distinct.asp
162; =============================================================================================================================== 168; ===============================================================================================================================
163Func __4ern_SQL__QueryBuilder__select($ACTION = Default, $COLM = Default, $METHODE = 'SELECT') 169Func __4ern_SQL__QueryBuilder__select($ACTION = Default, $COLM = Default, $METHODE = 'SELECT')
164    ;----------------------------------------------------------------------------------------------/ 170    ;----------------------------------------------------------------------------------------------/
165    ; Eigenschaften 171    ; Eigenschaften
166    ;----------------------------------------------------------------------------------------------/ 172    ;----------------------------------------------------------------------------------------------/
167    Local Static $QUEUE = ObjCreate("System.Collections.Queue") 173    Local Static $QUEUE = ObjCreate("System.Collections.Queue")
168    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store' 174    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store'
169    Local Static $isMethode = Null 175    Local Static $isMethode = Null
170  176 
171    ;----------------------------------------------------------------------------------------------/ 177    ;----------------------------------------------------------------------------------------------/
172    ; Setze Methode 178    ; Setze Methode
173    ;----------------------------------------------------------------------------------------------/ 179    ;----------------------------------------------------------------------------------------------/
174    If $isMethode = Null Then $isMethode = $METHODE 180    If $isMethode = Null Then $isMethode = $METHODE
175  181 
176    ;----------------------------------------------------------------------------------------------/ 182    ;----------------------------------------------------------------------------------------------/
177    ; AKTION 183    ; AKTION
178    ;----------------------------------------------------------------------------------------------/ 184    ;----------------------------------------------------------------------------------------------/
179    Switch $ACTION 185    Switch $ACTION
180  186 
181        ;----------------------------------------------------------------------------------------------/ 187        ;----------------------------------------------------------------------------------------------/
182        ; Speichere die Select spalten in eine Queue 188        ; Speichere die Select spalten in eine Queue
183        ;----------------------------------------------------------------------------------------------/ 189        ;----------------------------------------------------------------------------------------------/
184        Case 'store' 190        Case 'store'
185            Switch $METHODE 191            Switch $METHODE
186  192 
187                ;----------------------------------------------------------------------------------------------/ 193                ;----------------------------------------------------------------------------------------------/
188                ; Methode SELECT 194                ; Methode SELECT
189                ;----------------------------------------------------------------------------------------------/ 195                ;----------------------------------------------------------------------------------------------/
190                Case 'SELECT' 196                Case 'SELECT'
191                    If $isMethode <> $METHODE Then 197                    If $isMethode <> $METHODE Then
192                        __4ern_SQL_Console('error', 'SELECT -- QUERY BUILDER', 'Es wurde bereits die Methode DISTINCT aufgerufen.') 198                        __4ern_SQL_Console('error', 'SELECT -- QUERY BUILDER', 'Es wurde bereits die Methode DISTINCT aufgerufen.')
193                        Return SetError(1, 0, 0) 199                        Return SetError(1, 0, 0)
194                    EndIf 200                    EndIf
195  201 
196                    ;----------------------------------------------------------------------------------------------/ 202                    ;----------------------------------------------------------------------------------------------/
197                    ; Array Verarbeitung 203                    ; Array Verarbeitung
198                    ;   -> Ansonsten String 204                    ;   -> Ansonsten String
199                    ;----------------------------------------------------------------------------------------------/ 205                    ;----------------------------------------------------------------------------------------------/
200                    If IsArray($COLM) Then 206                    If IsArray($COLM) Then
201                        For $element In $COLM 207                        For $element In $COLM
202                            If IsString($element) Then $QUEUE.Enqueue($element) 208                            If IsString($element) Then $QUEUE.Enqueue($element)
203                        Next 209                        Next
204                    Else 210                    Else
205                        If IsString($COLM) Then $QUEUE.Enqueue($COLM) 211                        If IsString($COLM) Then $QUEUE.Enqueue($COLM)
206                    EndIf 212                    EndIf
207  213 
208                    ;----------------------------------------------------------------------------------------------/ 214                    ;----------------------------------------------------------------------------------------------/
209                    ; Methode DISTINCT 215                    ; Methode DISTINCT
210                    ;----------------------------------------------------------------------------------------------/ 216                    ;----------------------------------------------------------------------------------------------/
211                Case 'DISTINCT' 217                Case 'DISTINCT'
212                    If $isMethode <> $METHODE Then 218                    If $isMethode <> $METHODE Then
213                        __4ern_SQL_Console('error', 'DISTINCT -- QUERY BUILDER', 'Es wurde bereits die Methode SELECT aufgerufen.') 219                        __4ern_SQL_Console('error', 'DISTINCT -- QUERY BUILDER', 'Es wurde bereits die Methode SELECT aufgerufen.')
214                        Return SetError(1, 0, 0) 220                        Return SetError(1, 0, 0)
215                    EndIf 221                    EndIf
216  222 
217                    ;----------------------------------------------------------------------------------------------/ 223                    ;----------------------------------------------------------------------------------------------/
218                    ; Array Verarbeitung 224                    ; Array Verarbeitung
219                    ;   -> Ansonsten String 225                    ;   -> Ansonsten String
220                    ;----------------------------------------------------------------------------------------------/ 226                    ;----------------------------------------------------------------------------------------------/
221                    If IsArray($COLM) Then 227                    If IsArray($COLM) Then
222                        For $element In $COLM 228                        For $element In $COLM
223                            If IsString($element) Then $QUEUE.Enqueue($element) 229                            If IsString($element) Then $QUEUE.Enqueue($element)
224                        Next 230                        Next
225                    Else 231                    Else
226                        If IsString($COLM) Then $QUEUE.Enqueue($COLM) 232                        If IsString($COLM) Then $QUEUE.Enqueue($COLM)
227                    EndIf 233                    EndIf
228            EndSwitch 234            EndSwitch
229   235             
230            ;----------------------------------------------------------------------------------------------/ 236            ;----------------------------------------------------------------------------------------------/
231            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String 237            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String
232            ;----------------------------------------------------------------------------------------------/ 238            ;----------------------------------------------------------------------------------------------/
233        Case 'get' 239        Case 'get'
234  240 
235            ;----------------------------------------------------------------------------------------------/ 241            ;----------------------------------------------------------------------------------------------/
236            ; Bei SQL-Server nehmen Take anstatt von LIMIT 242            ; Bei SQL-Server nehmen Take anstatt von LIMIT
237            ;----------------------------------------------------------------------------------------------/ 243            ;----------------------------------------------------------------------------------------------/
238            If __4ern_SQL_Connection = 'sqlServer' Then 244            If __4ern_SQL_Connection = 'sqlServer' Then
239                Local $take = __4ern_SQL__QueryBuilder__limit(-1, 'get') 245                Local $take = __4ern_SQL__QueryBuilder__limit(-1, 'get')
240                Local $String = StringFormat('%s %s ', $isMethode, $take) 246                Local $String = StringFormat('%s %s ', $isMethode, $take)
241            Else 247            Else
242                Local $String = $isMethode & ' ' 248                Local $String = $isMethode & ' '
243            EndIf 249            EndIf
244   250             
245            ;----------------------------------------------------------------------------------------------/ 251            ;----------------------------------------------------------------------------------------------/
246            ; Wenn keine Einträge vorhanden, dann * 252            ; Wenn keine Einträge vorhanden, dann *
247            ;----------------------------------------------------------------------------------------------/ 253            ;----------------------------------------------------------------------------------------------/
248            If $QUEUE.Count = 0 Then Return $String & '* ' 254            If $QUEUE.Count = 0 Then Return $String & '* '
249  255 
250            ;----------------------------------------------------------------------------------------------/ 256            ;----------------------------------------------------------------------------------------------/
251            ; Erstelle String 257            ; Erstelle String
252            ;----------------------------------------------------------------------------------------------/ 258            ;----------------------------------------------------------------------------------------------/
253            For $elemet In $QUEUE 259            For $elemet In $QUEUE
254                $String &= $elemet & ', ' 260                $String &= $elemet & ', '
255            Next 261            Next
256  262 
257            ;----------------------------------------------------------------------------------------------/ 263            ;----------------------------------------------------------------------------------------------/
258            ; Lösche alle Einträge aus der Queue 264            ; Lösche alle Einträge aus der Queue
259            ;----------------------------------------------------------------------------------------------/ 265            ;----------------------------------------------------------------------------------------------/
260            While $QUEUE.Count <> 0 266            While $QUEUE.Count <> 0
261                $QUEUE.clear 267                $QUEUE.clear
262            WEnd 268            WEnd
263            $isMethode = Null 269            $isMethode = Null
264  270 
265            ;----------------------------------------------------------------------------------------------/ 271            ;----------------------------------------------------------------------------------------------/
266            ; Return 272            ; Return
267            ;----------------------------------------------------------------------------------------------/ 273            ;----------------------------------------------------------------------------------------------/
268            Return StringReplace($String, ',', '', -1) 274            Return StringReplace($String, ',', '', -1)
269    EndSwitch 275    EndSwitch
270EndFunc   ;==>__4ern_SQL__QueryBuilder__select 276EndFunc   ;==>__4ern_SQL__QueryBuilder__select
271Func __4ern_SQL__QueryBuilder__setkey($key) 277Func __4ern_SQL__QueryBuilder__setkey($key)
272  278 
273    __4ern_SQL__QueryBuilder__setTable(Default, $key) 279    __4ern_SQL__QueryBuilder__setTable(Default, $key)
274EndFunc   ;==>__4ern_SQL__QueryBuilder__setkey 280EndFunc   ;==>__4ern_SQL__QueryBuilder__setkey
275  281 
276; #FUNCTION# ==================================================================================================================== 282; #FUNCTION# ====================================================================================================================
277; Author ........: 4ern.de 283; Author ........: 4ern.de
278; Description....: Table DEFAULT Settings 284; Description....: Table DEFAULT Settings
279; =============================================================================================================================== 285; ===============================================================================================================================
280Func __4ern_SQL__QueryBuilder__setTable($P_TABLE = Default, $P_TKEY = Default, $ACTION = 'set') 286Func __4ern_SQL__QueryBuilder__setTable($P_TABLE = Default, $P_TKEY = Default, $ACTION = 'set')
281   287     
282    Local Static $S_table 288    Local Static $S_table
283    Local Static $S_tKey 289    Local Static $S_tKey
284  290 
285    Switch $ACTION 291    Switch $ACTION
286        Case 'set' 292        Case 'set'
287            If Not __4ern_SQL__IsDefault($P_TABLE, '-1,', ',') Then $S_table = $P_TABLE 293            If Not __4ern_SQL__IsDefault($P_TABLE, '-1,', ',') Then $S_table = $P_TABLE
288            If Not __4ern_SQL__IsDefault($P_TKEY, '-1,', ',') Then $S_tKey = $P_TKEY 294            If Not __4ern_SQL__IsDefault($P_TKEY, '-1,', ',') Then $S_tKey = $P_TKEY
289   295             
290            ;----------------------------------------------------------------------------------------------/ 296            ;----------------------------------------------------------------------------------------------/
291            ; Tabelle übergeben. 297            ; Tabelle übergeben.
292            ;----------------------------------------------------------------------------------------------/ 298            ;----------------------------------------------------------------------------------------------/
293        Case 'getTable' 299        Case 'getTable'
294            If Not __4ern_SQL__IsDefault($S_table, '-1,', ',') Then 300            If Not __4ern_SQL__IsDefault($S_table, '-1,', ',') Then
295                $S_table = Default 301                $S_table = Default
296                Return $S_table 302                Return $S_table
297            EndIf 303            EndIf
298            __4ern_SQL_Console('error', 'SQL Table', 'Es wurde keine Tabelle ausgewaehlt') 304            __4ern_SQL_Console('error', 'SQL Table', 'Es wurde keine Tabelle ausgewaehlt')
299            Return SetError(1, 0, 0) 305            Return SetError(1, 0, 0)
300   306             
301            ;----------------------------------------------------------------------------------------------/ 307            ;----------------------------------------------------------------------------------------------/
302            ; Schlüssel übergeben 308            ; Schlüssel übergeben
303            ;----------------------------------------------------------------------------------------------/ 309            ;----------------------------------------------------------------------------------------------/
304        Case 'getTKey' 310        Case 'getTKey'
305            If Not __4ern_SQL__IsDefault($S_tKey, '-1,', ',') Then Return $S_tKey 311            If Not __4ern_SQL__IsDefault($S_tKey, '-1,', ',') Then Return $S_tKey
306            __4ern_SQL_Console('warning', 'Es wurde kein Tabellen Schluessel ausgewaehlt.') 312            __4ern_SQL_Console('warning', 'Es wurde kein Tabellen Schluessel ausgewaehlt.')
307            Return $S_tKey 313            Return $S_tKey
308  314 
309    EndSwitch 315    EndSwitch
310EndFunc   ;==>__4ern_SQL__QueryBuilder__setTable 316EndFunc   ;==>__4ern_SQL__QueryBuilder__setTable
311  317 
312; #FUNCTION# ==================================================================================================================== 318; #FUNCTION# ====================================================================================================================
313; Author ........: 4ern.de 319; Author ........: 4ern.de
314; Description....: Set table command 320; Description....: Set table command
315; =============================================================================================================================== 321; ===============================================================================================================================
316Func __4ern_SQL__QueryBuilder__table($ACTION = Default, $COLM = Default) 322Func __4ern_SQL__QueryBuilder__table($ACTION = Default, $COLM = Default)
317    ;----------------------------------------------------------------------------------------------/ 323    ;----------------------------------------------------------------------------------------------/
318    ; Eigenschaften 324    ; Eigenschaften
319    ;----------------------------------------------------------------------------------------------/ 325    ;----------------------------------------------------------------------------------------------/
320    Local Static $QUEUE = ObjCreate("System.Collections.Queue") 326    Local Static $QUEUE = ObjCreate("System.Collections.Queue")
321    If IsObj($QUEUE) = 0 Then $QUEUE = ObjCreate("System.Collections.Queue") 327    If IsObj($QUEUE) = 0 Then $QUEUE = ObjCreate("System.Collections.Queue")
322    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store' 328    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store'
323  329 
324    ;----------------------------------------------------------------------------------------------/ 330    ;----------------------------------------------------------------------------------------------/
325    ; AKTION 331    ; AKTION
326    ;----------------------------------------------------------------------------------------------/ 332    ;----------------------------------------------------------------------------------------------/
327    Switch $ACTION 333    Switch $ACTION
328        ;----------------------------------------------------------------------------------------------/ 334        ;----------------------------------------------------------------------------------------------/
329        ; Speichere die Select spalten in eine Queue 335        ; Speichere die Select spalten in eine Queue
330        ;----------------------------------------------------------------------------------------------/ 336        ;----------------------------------------------------------------------------------------------/
331        Case 'store' 337        Case 'store'
332            ;----------------------------------------------------------------------------------------------/ 338            ;----------------------------------------------------------------------------------------------/
333            ; Array Verarbeitung 339            ; Array Verarbeitung
334            ;   -> Ansonsten String 340            ;   -> Ansonsten String
335            ;----------------------------------------------------------------------------------------------/ 341            ;----------------------------------------------------------------------------------------------/
336            If IsArray($COLM) Then 342            If IsArray($COLM) Then
337                For $element In $COLM 343                For $element In $COLM
338                    If IsString($element) Then $QUEUE.Enqueue($element) 344                    If IsString($element) Then $QUEUE.Enqueue($element)
339                Next 345                Next
340            Else 346            Else
341                If IsString($COLM) Then $QUEUE.Enqueue($COLM) 347                If IsString($COLM) Then $QUEUE.Enqueue($COLM)
342            EndIf 348            EndIf
343  349 
344            ;----------------------------------------------------------------------------------------------/ 350            ;----------------------------------------------------------------------------------------------/
345            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String 351            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String
346            ;----------------------------------------------------------------------------------------------/ 352            ;----------------------------------------------------------------------------------------------/
347        Case 'get' 353        Case 'get'
348  354 
349            $String = 'FROM ' 355            $String = 'FROM '
350            ;----------------------------------------------------------------------------------------------/ 356            ;----------------------------------------------------------------------------------------------/
351            ; Wenn keine Einträge vorhanden, dann * 357            ; Wenn keine Einträge vorhanden, dann *
352            ;----------------------------------------------------------------------------------------------/ 358            ;----------------------------------------------------------------------------------------------/
353            If $QUEUE.Count = 0 Then 359            If $QUEUE.Count = 0 Then
354                $ret = __4ern_SQL__QueryBuilder__setTable(-1, -1, 'getTable') 360                $ret = __4ern_SQL__QueryBuilder__setTable(-1, -1, 'getTable')
355                If @error Then Return SetError(@error, 0, $ret) 361                If @error Then Return SetError(@error, 0, $ret)
356                Return $String & $ret & ' ' 362                Return $String & $ret & ' '
357            EndIf 363            EndIf
358            ;----------------------------------------------------------------------------------------------/ 364            ;----------------------------------------------------------------------------------------------/
359            ; Erstelle String 365            ; Erstelle String
360            ;----------------------------------------------------------------------------------------------/ 366            ;----------------------------------------------------------------------------------------------/
361            For $elemet In $QUEUE 367            For $elemet In $QUEUE
362                $String &= $elemet & ', ' 368                $String &= $elemet & ', '
363            Next 369            Next
364            ;----------------------------------------------------------------------------------------------/ 370            ;----------------------------------------------------------------------------------------------/
365            ; Lösche alle Einträge aus der Queue 371            ; Lösche alle Einträge aus der Queue
366            ;----------------------------------------------------------------------------------------------/ 372            ;----------------------------------------------------------------------------------------------/
367            $QUEUE.clear 373            $QUEUE.clear
368  374 
369            ;----------------------------------------------------------------------------------------------/ 375            ;----------------------------------------------------------------------------------------------/
370            ; Return 376            ; Return
371            ;----------------------------------------------------------------------------------------------/ 377            ;----------------------------------------------------------------------------------------------/
372            Return StringReplace($String, ',', '', -1) 378            Return StringReplace($String, ',', '', -1)
373   379             
374    EndSwitch 380    EndSwitch
375EndFunc   ;==>__4ern_SQL__QueryBuilder__table 381EndFunc   ;==>__4ern_SQL__QueryBuilder__table
376  382 
377; #FUNCTION# ==================================================================================================================== 383; #FUNCTION# ====================================================================================================================
378; Author ........: 4ern.de 384; Author ........: 4ern.de
379; Description....: WHERE Clause 385; Description....: WHERE Clause
380; Source.........: http://www.w3schools.com/sql/sql_where.asp 386; Source.........: http://www.w3schools.com/sql/sql_where.asp
381; =============================================================================================================================== 387; ===============================================================================================================================
382Func __4ern_SQL__QueryBuilder__where($ACTION = Default, $aVALUE = Default, $METHODE = Default, $SQL_OPERATOR = Default, $SET_QUE = Default) 388Func __4ern_SQL__QueryBuilder__where($ACTION = Default, $aVALUE = Default, $METHODE = Default, $SQL_OPERATOR = Default, $SET_QUE = Default)
383  389 
384    ;----------------------------------------------------------------------------------------------/ 390    ;----------------------------------------------------------------------------------------------/
385    ; Eigenschaften 391    ; Eigenschaften
386    ;----------------------------------------------------------------------------------------------/ 392    ;----------------------------------------------------------------------------------------------/
387    Local Static $WHERE_QUEUE = ObjCreate("System.Collections.Queue") 393    Local Static $WHERE_QUEUE = ObjCreate("System.Collections.Queue")
388    Local Static $HAVING_QUEUE = ObjCreate("System.Collections.Queue") 394    Local Static $HAVING_QUEUE = ObjCreate("System.Collections.Queue")
389    Local Static $bWhereBetween = Null 395    Local Static $bWhereBetween = Null
390    Local Static $bHavingBetween = Null 396    Local Static $bHavingBetween = Null
391    Local Static $bWhereIn = Null 397    Local Static $bWhereIn = Null
392    Local Static $bHavingIn = Null 398    Local Static $bHavingIn = Null
393  399 
394    ;----------------------------------------------------------------------------------------------/ 400    ;----------------------------------------------------------------------------------------------/
395    ; DEFAUL Eingenschaften 401    ; DEFAUL Eingenschaften
396    ;----------------------------------------------------------------------------------------------/ 402    ;----------------------------------------------------------------------------------------------/
397    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store' 403    If __4ern_SQL__IsDefault($ACTION, '-1,', ',') Then $ACTION = 'store'
398    If __4ern_SQL__IsDefault($SET_QUE, '-1,', ',') Then $SET_QUE = 'WHERE' 404    If __4ern_SQL__IsDefault($SET_QUE, '-1,', ',') Then $SET_QUE = 'WHERE'
399    If __4ern_SQL__IsDefault($SQL_OPERATOR, '-1,', ',') Then $SQL_OPERATOR = 'AND' 405    If __4ern_SQL__IsDefault($SQL_OPERATOR, '-1,', ',') Then $SQL_OPERATOR = 'AND'
400    If __4ern_SQL__IsDefault($METHODE, '-1,', ',') Then $METHODE = 'AND' 406    If __4ern_SQL__IsDefault($METHODE, '-1,', ',') Then $METHODE = 'AND'
401  407 
402    ;----------------------------------------------------------------------------------------------/ 408    ;----------------------------------------------------------------------------------------------/
403    ; QUE 409    ; QUE
404    ;----------------------------------------------------------------------------------------------/ 410    ;----------------------------------------------------------------------------------------------/
405    If $SET_QUE = 'WHERE' Then 411    If $SET_QUE = 'WHERE' Then
406        $QUEUE = $WHERE_QUEUE 412        $QUEUE = $WHERE_QUEUE
407        $bBetween = $bWhereBetween 413        $bBetween = $bWhereBetween
408        $bIn = $bWhereIn 414        $bIn = $bWhereIn
409    EndIf 415    EndIf
410  416 
411    If $SET_QUE = 'HAVING' Then 417    If $SET_QUE = 'HAVING' Then
412        $QUEUE = $HAVING_QUEUE 418        $QUEUE = $HAVING_QUEUE
413        $bBetween = $bHavingBetween 419        $bBetween = $bHavingBetween
414        $bIn = $bHavingIn 420        $bIn = $bHavingIn
415    EndIf 421    EndIf
416  422 
417    ;----------------------------------------------------------------------------------------------/ 423    ;----------------------------------------------------------------------------------------------/
418    ; METHODEN 424    ; METHODEN
419    ;----------------------------------------------------------------------------------------------/ 425    ;----------------------------------------------------------------------------------------------/
420    Switch $ACTION 426    Switch $ACTION
421        Case 'store' 427        Case 'store'
422  428 
423            ;----------------------------------------------------------------------------------------------/ 429            ;----------------------------------------------------------------------------------------------/
424            ; SQL Operator 430            ; SQL Operator
425            ;----------------------------------------------------------------------------------------------/ 431            ;----------------------------------------------------------------------------------------------/
426            Switch $METHODE 432            Switch $METHODE
427  433 
428                Case 'AND', 'OR' 434                Case 'AND', 'OR'
429                    If IsArray($aVALUE) Then 435                    If IsArray($aVALUE) Then
430                        For $element In $aVALUE 436                        For $element In $aVALUE
431                            If IsString($element) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $METHODE, $element)) 437                            If IsString($element) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $METHODE, $element))
432                        Next 438                        Next
433                    Else 439                    Else
434                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $METHODE, $aVALUE)) 440                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $METHODE, $aVALUE))
435                    EndIf 441                    EndIf
436  442 
437                Case 'BETWEEN', 'NOT BETWEEN' 443                Case 'BETWEEN', 'NOT BETWEEN'
438                    If $bBetween = Null Then 444                    If $bBetween = Null Then
439                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $aVALUE)) 445                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $aVALUE))
440                        $bBetween = 1 446                        $bBetween = 1
441                    Else 447                    Else
442                        __4ern_SQL_Console('error', 'BETWEEN -- QUERY BUILDER', 'Der Parameter BETWEEN kann nur einmal pro Query erfolgen') 448                        __4ern_SQL_Console('error', 'BETWEEN -- QUERY BUILDER', 'Der Parameter BETWEEN kann nur einmal pro Query erfolgen')
443                    EndIf 449                    EndIf
444  450 
445                Case 'IN', 'NOT IN' 451                Case 'IN', 'NOT IN'
446                    If $bIn = Null Then 452                    If $bIn = Null Then
447                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $aVALUE)) 453                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $aVALUE))
448                        $bIn = 1 454                        $bIn = 1
449                    Else 455                    Else
450                        __4ern_SQL_Console('error', 'BETWEEN -- QUERY BUILDER', 'Der Parameter BETWEEN kann nur einmal pro Query erfolgen') 456                        __4ern_SQL_Console('error', 'BETWEEN -- QUERY BUILDER', 'Der Parameter BETWEEN kann nur einmal pro Query erfolgen')
451                    EndIf 457                    EndIf
452  458 
453                Case 'IS NULL', 'IS NOT NULL' 459                Case 'IS NULL', 'IS NOT NULL'
454                    If IsArray($aVALUE) Then 460                    If IsArray($aVALUE) Then
455                        For $element In $aVALUE 461                        For $element In $aVALUE
456                            If IsString($element) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $element)) 462                            If IsString($element) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $element))
457                        Next 463                        Next
458                    Else 464                    Else
459                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $aVALUE)) 465                        If IsString($aVALUE) Then $QUEUE.Enqueue(StringFormat('%s (%s)', $SQL_OPERATOR, $aVALUE))
460                    EndIf 466                    EndIf
461            EndSwitch 467            EndSwitch
462  468 
463            ;----------------------------------------------------------------------------------------------/ 469            ;----------------------------------------------------------------------------------------------/
464            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String 470            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String
465            ;----------------------------------------------------------------------------------------------/ 471            ;----------------------------------------------------------------------------------------------/
466        Case 'getWhere' 472        Case 'getWhere'
467  473 
468            ;**********************************************************************************************/ 474            ;**********************************************************************************************/
469            ; Ablauf 475            ; Ablauf
470            ;   - Erstelle String 'WHERE ' 476            ;   - Erstelle String 'WHERE '
471            ;   - Anzahl der Que = 0 dan return String 'Where 1' 477            ;   - Anzahl der Que = 0 dan return String 'Where 1'
472            ;   - Erstelle String mit aus der Que heraus 478            ;   - Erstelle String mit aus der Que heraus
473            ;   - Bereinige Static Variablen und leere die QUE 479            ;   - Bereinige Static Variablen und leere die QUE
474            ;   - Bereinigung und Return des Strings 480            ;   - Bereinigung und Return des Strings
475            ;**********************************************************************************************/ 481            ;**********************************************************************************************/
476  482 
477            $String = 'WHERE ' 483            $String = 'WHERE '
478            If $WHERE_QUEUE.Count = 0 Then Return '' 484            If $WHERE_QUEUE.Count = 0 Then Return ''
479            For $elemet In $WHERE_QUEUE 485            For $elemet In $WHERE_QUEUE
480                $String &= $elemet & ' ' 486                $String &= $elemet & ' '
481            Next 487            Next
482            $WHERE_QUEUE.clear 488            $WHERE_QUEUE.clear
483            $bHavingBetween = Null 489            $bHavingBetween = Null
484            $bHavingIn = Null 490            $bHavingIn = Null
485            Return StringStripWS(StringReplace(StringReplace($String, 'WHERE AND', 'WHERE', 1), 'WHERE OR', 'WHERE', 1), 4) 491            Return StringStripWS(StringReplace(StringReplace($String, 'WHERE AND', 'WHERE', 1), 'WHERE OR', 'WHERE', 1), 4)
486  492 
487            ;----------------------------------------------------------------------------------------------/ 493            ;----------------------------------------------------------------------------------------------/
488            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String 494            ; Ermittle alle Elemete aus der Queue, und erstelle an Select String
489            ;----------------------------------------------------------------------------------------------/ 495            ;----------------------------------------------------------------------------------------------/
490        Case 'getHaving' 496        Case 'getHaving'
491  497 
492            ;**********************************************************************************************/ 498            ;**********************************************************************************************/
493            ; Ablauf 499            ; Ablauf
494            ;   - Erstelle String 'HAVING ' 500            ;   - Erstelle String 'HAVING '
495            ;   - Anzahl der Que = 0 dan return String leer String 501            ;   - Anzahl der Que = 0 dan return String leer String
496            ;   - Erstelle String mit aus der Que heraus 502            ;   - Erstelle String mit aus der Que heraus
497            ;   - Bereinige Static Variablen und leere die QUE 503            ;   - Bereinige Static Variablen und leere die QUE
498            ;   - Bereinigung und Return des Strings 504            ;   - Bereinigung und Return des Strings
499            ;**********************************************************************************************/ 505            ;**********************************************************************************************/
500  506 
501            $String = 'HAVING ' 507            $String = 'HAVING '
502            If $HAVING_QUEUE.Count = 0 Then Return '' 508            If $HAVING_QUEUE.Count = 0 Then Return ''
503            For $elemet In $HAVING_QUEUE 509            For $elemet In $HAVING_QUEUE
504                $String &= $elemet & ' ' 510                $String &= $elemet & ' '
505            Next 511            Next
506            $HAVING_QUEUE.clear 512            $HAVING_QUEUE.clear
507            $bHavingBetween = Null 513            $bHavingBetween = Null
508            $bHavingIn = Null 514            $bHavingIn = Null
509            Return StringStripWS(StringReplace(StringReplace($String, 'HAVING AND', 'WHERE', 1), 'HAVING OR', 'HAVING', 1), 4) 515            Return StringStripWS(StringReplace(StringReplace($String, 'HAVING AND', 'WHERE', 1), 'HAVING OR', 'HAVING', 1), 4)
510  516 
511    EndSwitch 517    EndSwitch
512EndFunc   ;==>__4ern_SQL__QueryBuilder__where 518EndFunc   ;==>__4ern_SQL__QueryBuilder__where
513Func __4ern_SQL_Query_distinct($COLM, $C1 = Default, $C2 = Default, $C3 = Default, $C4 = Default, $C5 = Default, $C6 = Default, $C7 = Default, $C8 = Default, $C9 = Default) 519Func __4ern_SQL_Query_distinct($COLM, $C1 = Default, $C2 = Default, $C3 = Default, $C4 = Default, $C5 = Default, $C6 = Default, $C7 = Default, $C8 = Default, $C9 = Default)
514   520     
515    ;----------------------------------------------------------------------------------------------/ 521    ;----------------------------------------------------------------------------------------------/
516    ; Prüfen ob $COLM ein 2D Array ist.. 522    ; Prüfen ob $COLM ein 2D Array ist..
517    ;----------------------------------------------------------------------------------------------/ 523    ;----------------------------------------------------------------------------------------------/
518    If IsArray($COLM) Then 524    If IsArray($COLM) Then
519        If UBound($COLM, 2) <> 0 Then 525        If UBound($COLM, 2) <> 0 Then
520            __4ern_SQL_Console('error', 'DISTINCT -- QUERY BUILDER', 'Es sind nur 1D Arrays erlaubt') 526            __4ern_SQL_Console('error', 'DISTINCT -- QUERY BUILDER', 'Es sind nur 1D Arrays erlaubt')
521            Return SetError(1, 0, 0) 527            Return SetError(1, 0, 0)
522        EndIf 528        EndIf
523    EndIf 529    EndIf
524  530 
525    ;----------------------------------------------------------------------------------------------/ 531    ;----------------------------------------------------------------------------------------------/
526    ; Übergabe der Parameter an QueryBuilder 532    ; Übergabe der Parameter an QueryBuilder
527    ;----------------------------------------------------------------------------------------------/ 533    ;----------------------------------------------------------------------------------------------/
528    __4ern_SQL__QueryBuilder__select(-1, $COLM, 'DISTINCT') 534    __4ern_SQL__QueryBuilder__select(-1, $COLM, 'DISTINCT')
529    Local $aC = [$C1, $C2, $C3, $C4, $C5, $C6, $C7, $C8, $C9]  535    If $C1 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C1, 'DISTINCT') 
530    For $key In $aC  536    If $C2 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C2, 'DISTINCT') 
531        If $key <> Default Then __4ern_SQL__QueryBuilder__select(-1, $key)  537    If $C3 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C3, 'DISTINCT') 
532    Next  538    If $C4 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C4, 'DISTINCT') 
  539    If $C5 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C5, 'DISTINCT') 
  540    If $C6 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C6, 'DISTINCT') 
  541    If $C7 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C7, 'DISTINCT') 
  542    If $C8 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C8, 'DISTINCT') 
  543    If $C9 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C9, 'DISTINCT') 
533  544 
534    Return 1 545    Return 1
535EndFunc   ;==>__4ern_SQL_Query_distinct 546EndFunc   ;==>__4ern_SQL_Query_distinct
536Func __4ern_SQL_Query_groupBy($COLM) 547Func __4ern_SQL_Query_groupBy($COLM)
537    $ret = __4ern_SQL__QueryBuilder__groupBy(-1, $COLM) 548    $ret = __4ern_SQL__QueryBuilder__groupBy(-1, $COLM)
538    Return SetError(@error, 0, $ret) 549    Return SetError(@error, 0, $ret)
539EndFunc   ;==>__4ern_SQL_Query_groupBy 550EndFunc   ;==>__4ern_SQL_Query_groupBy
540  551 
541; #FUNCTION# ==================================================================================================================== 552; #FUNCTION# ====================================================================================================================
542; Author ........: 4ern.de 553; Author ........: 4ern.de
543; Description....: SQL HAVING Clause 554; Description....: SQL HAVING Clause
544; Source.........: http://www.w3schools.com/sql/sql_having.asp 555; Source.........: http://www.w3schools.com/sql/sql_having.asp
545; =============================================================================================================================== 556; ===============================================================================================================================
546Func __4ern_SQL_Query_having($COLM, $V1 = Default, $V2 = Default) 557Func __4ern_SQL_Query_having($COLM, $V1 = Default, $V2 = Default)
547    $ret = __4ern_SQL_Query_where($COLM, $V1, $V2, 'AND', 'HAVING') 558    $ret = __4ern_SQL_Query_where($COLM, $V1, $V2, 'AND', 'HAVING')
548    Return SetError(@error, 0, $ret) 559    Return SetError(@error, 0, $ret)
549EndFunc   ;==>__4ern_SQL_Query_having 560EndFunc   ;==>__4ern_SQL_Query_having
550Func __4ern_SQL_Query_havingBetween($COLM, $V1 = Default, $V2 = Default) 561Func __4ern_SQL_Query_havingBetween($COLM, $V1 = Default, $V2 = Default)
551    $ret = __4ern_SQL_Query_whereBetween($COLM, $V1, $V2, 'BETWEEN', 'HAVING') 562    $ret = __4ern_SQL_Query_whereBetween($COLM, $V1, $V2, 'BETWEEN', 'HAVING')
552    Return SetError(@error, 0, $ret) 563    Return SetError(@error, 0, $ret)
553EndFunc   ;==>__4ern_SQL_Query_havingBetween 564EndFunc   ;==>__4ern_SQL_Query_havingBetween
554Func __4ern_SQL_Query_havingIn($COLM, $V1 = Default, $V2 = Default) 565Func __4ern_SQL_Query_havingIn($COLM, $V1 = Default, $V2 = Default)
555    $ret = __4ern_SQL_Query_whereIn($COLM, $V1, $V2, 'IN', 'HAVING') 566    $ret = __4ern_SQL_Query_whereIn($COLM, $V1, $V2, 'IN', 'HAVING')
556    Return SetError(@error, 0, $ret) 567    Return SetError(@error, 0, $ret)
557EndFunc   ;==>__4ern_SQL_Query_havingIn 568EndFunc   ;==>__4ern_SQL_Query_havingIn
558Func __4ern_SQL_Query_havingNotBetween($COLM, $V1 = Default, $V2 = Default) 569Func __4ern_SQL_Query_havingNotBetween($COLM, $V1 = Default, $V2 = Default)
559    $ret = __4ern_SQL_Query_whereBetween($COLM, $V1, $V2, 'NOT BETWEEN', 'HAVING') 570    $ret = __4ern_SQL_Query_whereBetween($COLM, $V1, $V2, 'NOT BETWEEN', 'HAVING')
560    Return SetError(@error, 0, $ret) 571    Return SetError(@error, 0, $ret)
561EndFunc   ;==>__4ern_SQL_Query_havingNotBetween 572EndFunc   ;==>__4ern_SQL_Query_havingNotBetween
562Func __4ern_SQL_Query_havingNotIn($COLM, $V1 = Default, $V2 = Default) 573Func __4ern_SQL_Query_havingNotIn($COLM, $V1 = Default, $V2 = Default)
563    $ret = __4ern_SQL_Query_whereIn($COLM, $V1, $V2, 'NOT IN', 'HAVING') 574    $ret = __4ern_SQL_Query_whereIn($COLM, $V1, $V2, 'NOT IN', 'HAVING')
564    Return SetError(@error, 0, $ret) 575    Return SetError(@error, 0, $ret)
565EndFunc   ;==>__4ern_SQL_Query_havingNotIn 576EndFunc   ;==>__4ern_SQL_Query_havingNotIn
566Func __4ern_SQL_Query_havingNotNull($COLM) 577Func __4ern_SQL_Query_havingNotNull($COLM)
567    $ret = __4ern_SQL_Query_whereNull($COLM, 'IS NOT NULL', 'HAVING') 578    $ret = __4ern_SQL_Query_whereNull($COLM, 'IS NOT NULL', 'HAVING')
568    Return SetError(@error, 0, $ret) 579    Return SetError(@error, 0, $ret)
569EndFunc   ;==>__4ern_SQL_Query_havingNotNull 580EndFunc   ;==>__4ern_SQL_Query_havingNotNull
570Func __4ern_SQL_Query_havingNull($COLM) 581Func __4ern_SQL_Query_havingNull($COLM)
571    $ret = __4ern_SQL_Query_whereNull($COLM, 'IS NULL', 'HAVING') 582    $ret = __4ern_SQL_Query_whereNull($COLM, 'IS NULL', 'HAVING')
572    Return SetError(@error, 0, $ret) 583    Return SetError(@error, 0, $ret)
573EndFunc   ;==>__4ern_SQL_Query_havingNull 584EndFunc   ;==>__4ern_SQL_Query_havingNull
574  585 
575; #FUNCTION# ==================================================================================================================== 586; #FUNCTION# ====================================================================================================================
576; Author ........: 4ern.de 587; Author ........: 4ern.de
577; Description....: INSERT INTO Statement 588; Description....: INSERT INTO Statement
578; Source.........: http://www.w3schools.com/sql/sql_insert.asp 589; Source.........: http://www.w3schools.com/sql/sql_insert.asp
579; =============================================================================================================================== 590; ===============================================================================================================================
580Func __4ern_SQL_Query_insert($COLM, $V1 = Default) 591Func __4ern_SQL_Query_insert($COLM, $V1 = Default)
581  592 
582    Local Static $table = __4ern_SQL__QueryBuilder__table('get') 593    Local Static $table = __4ern_SQL__QueryBuilder__table('get')
583    If @error Then Return SetError(@error, 0, $table) 594    If @error Then Return SetError(@error, 0, $table)
584    $table = StringReplace($table, 'FROM', 'INSERT INTO ') 595    $table = StringReplace($table, 'FROM', 'INSERT INTO ')
585  596 
586    ;----------------------------------------------------------------------------------------------/ 597    ;----------------------------------------------------------------------------------------------/
587    ; Prüfen ob $COLM ein 2D Array ist.. 598    ; Prüfen ob $COLM ein 2D Array ist..
588    ;----------------------------------------------------------------------------------------------/ 599    ;----------------------------------------------------------------------------------------------/
589    If IsArray($COLM) Then 600    If IsArray($COLM) Then
590  601 
591        ;----------------------------------------------------------------------------------------------/ 602        ;----------------------------------------------------------------------------------------------/
592        ; Check Array 603        ; Check Array
593        ;----------------------------------------------------------------------------------------------/ 604        ;----------------------------------------------------------------------------------------------/
594        If UBound($COLM, 2) <> 2 Then 605        If UBound($COLM, 2) <> 2 Then
595            __4ern_SQL_Console('error', 'Insert Into -- QUERY BUILDER', 'Es muss ein 2D Array mit exakt 2 Spalten sein') 606            __4ern_SQL_Console('error', 'Insert Into -- QUERY BUILDER', 'Es muss ein 2D Array mit exakt 2 Spalten sein')
596            Return SetError(1, 0, 0) 607            Return SetError(1, 0, 0)
597        EndIf 608        EndIf
598  609 
599        $String = ' (' 610        $String = ' ('
600        For $i = 0 To UBound($COLM) - 1 611        For $i = 0 To UBound($COLM) - 1
601            $String &= StringFormat('%s,', $COLM[$i][0]) 612            $String &= StringFormat('%s,', $COLM[$i][0])
602        Next 613        Next
603        $String = StringReplace($String, ',', '', -1) 614        $String = StringReplace($String, ',', '', -1)
604   615         
605        $String &= ') VALUES(' 616        $String &= ') VALUES('
606        For $i = 0 To UBound($COLM) - 1 617        For $i = 0 To UBound($COLM) - 1
607            If (IsString($COLM[$i][1]) = 1) And (StringRegExp($COLM[$i][1], '\w*\(\)|NULL') = 0) Then 618            If (IsString($COLM[$i][1]) = 1) And (StringRegExp($COLM[$i][1], '\w*\(\)|NULL') = 0) Then
608                $COLM[$i][1] = StringReplace($COLM[$i][1], '"', '`') 619                $COLM[$i][1] = StringReplace($COLM[$i][1], '"', '`')
609                $COLM[$i][1] = StringReplace($COLM[$i][1], "'", '`') 620                $COLM[$i][1] = StringReplace($COLM[$i][1], "'", '`')
610                $String &= StringFormat('"%s",', $COLM[$i][1]) 621                $String &= StringFormat('"%s",', $COLM[$i][1])
611            Else 622            Else
612                $String &= StringFormat('%s,', $COLM[$i][1]) 623                $String &= StringFormat('%s,', $COLM[$i][1])
613            EndIf 624            EndIf
614        Next 625        Next
615        $String = StringReplace($String, ',', '', -1) 626        $String = StringReplace($String, ',', '', -1)
616        $String &= ');' 627        $String &= ');'
617   628         
618        ;----------------------------------------------------------------------------------------------/ 629        ;----------------------------------------------------------------------------------------------/
619        ; Erstelle SQL String 630        ; Erstelle SQL String
620        ;----------------------------------------------------------------------------------------------/ 631        ;----------------------------------------------------------------------------------------------/
621        $SQL = StringStripWS($table & $String, 4) 632        $SQL = StringStripWS($table & $String, 4)
622        ;----------------------------------------------------------------------------------------------/ 633        ;----------------------------------------------------------------------------------------------/
623        ; Feuere Abfrage ab. 634        ; Feuere Abfrage ab.
624        ;----------------------------------------------------------------------------------------------/ 635        ;----------------------------------------------------------------------------------------------/
625  636 
626        Return __4ern_SQL_rawQuery($SQL, 'update()') 637        Return __4ern_SQL_rawQuery($SQL, 'update()')
627    EndIf 638    EndIf
628  639 
629    ;----------------------------------------------------------------------------------------------/ 640    ;----------------------------------------------------------------------------------------------/
630    ; Insert über Parameter 641    ; Insert über Parameter
631    ;----------------------------------------------------------------------------------------------/ 642    ;----------------------------------------------------------------------------------------------/
632    $V1 = StringReplace($V1, '"', '`') 643    $V1 = StringReplace($V1, '"', '`')
633    $V1 = StringReplace($V1, "'", '`') 644    $V1 = StringReplace($V1, "'", '`')
634  645 
635    If (IsString($V1) = 1) And (StringRegExp($V1, '\w*\(\)|NULL') = 0) Then 646    If (IsString($V1) = 1) And (StringRegExp($V1, '\w*\(\)|NULL') = 0) Then
636        $String = StringFormat('(%s) VALUES ("%s")', $COLM, $V1) 647        $String = StringFormat('(%s) VALUES ("%s")', $COLM, $V1)
637    Else 648    Else
638        $String = StringFormat('(%s) VALUES (%s)', $COLM, $V1) 649        $String = StringFormat('(%s) VALUES (%s)', $COLM, $V1)
639    EndIf 650    EndIf
640  651 
641    $SQL = StringStripWS($table & $String, 4) 652    $SQL = StringStripWS($table & $String, 4)
642    Return __4ern_SQL_rawQuery($SQL, 'update()') 653    Return __4ern_SQL_rawQuery($SQL, 'update()')
643EndFunc   ;==>__4ern_SQL_Query_insert 654EndFunc   ;==>__4ern_SQL_Query_insert
644Func __4ern_SQL_Query_orderBy($COLM, $V1 = 'asc') 655Func __4ern_SQL_Query_orderBy($COLM, $V1 = 'asc')
645   656     
646    ;----------------------------------------------------------------------------------------------/ 657    ;----------------------------------------------------------------------------------------------/
647    ; Prüfe ob ein valider Sortier wert eingegeben wurde 658    ; Prüfe ob ein valider Sortier wert eingegeben wurde
648    ;----------------------------------------------------------------------------------------------/ 659    ;----------------------------------------------------------------------------------------------/
649    If StringRegExp($V1, '(asc|desc)') = 0 Then 660    If StringRegExp($V1, '(asc|desc)') = 0 Then
650        __4ern_SQL_Console('error', 'ORDER BY -- QUERY BUILDER', StringFormat('(%s) ist kein valider ORDER BY Keyword', $V1)) 661        __4ern_SQL_Console('error', 'ORDER BY -- QUERY BUILDER', StringFormat('(%s) ist kein valider ORDER BY Keyword', $V1))
651        Return SetError(1, 0, 0) 662        Return SetError(1, 0, 0)
652    EndIf 663    EndIf
653  664 
654    ;----------------------------------------------------------------------------------------------/ 665    ;----------------------------------------------------------------------------------------------/
655    ; Übergabe der Parameter an QueryBuilder 666    ; Übergabe der Parameter an QueryBuilder
656    ;----------------------------------------------------------------------------------------------/ 667    ;----------------------------------------------------------------------------------------------/
657    $ret = __4ern_SQL__QueryBuilder__Orderby(-1, StringFormat('%s %s', $COLM, $V1)) 668    $ret = __4ern_SQL__QueryBuilder__Orderby(-1, StringFormat('%s %s', $COLM, $V1))
658    Return SetError(@error, 0, $ret) 669    Return SetError(@error, 0, $ret)
659EndFunc   ;==>__4ern_SQL_Query_orderBy 670EndFunc   ;==>__4ern_SQL_Query_orderBy
660Func __4ern_SQL_Query_orHaving($COLM, $V1 = Default, $V2 = Default) 671Func __4ern_SQL_Query_orHaving($COLM, $V1 = Default, $V2 = Default)
661    $ret = __4ern_SQL_Query_where($COLM, $V1, $V2, 'OR', 'HAVING') 672    $ret = __4ern_SQL_Query_where($COLM, $V1, $V2, 'OR', 'HAVING')
662    Return SetError(@error, 0, $ret) 673    Return SetError(@error, 0, $ret)
663EndFunc   ;==>__4ern_SQL_Query_orHaving 674EndFunc   ;==>__4ern_SQL_Query_orHaving
664Func __4ern_SQL_Query_orWhere($COLM, $V1 = Default, $V2 = Default) 675Func __4ern_SQL_Query_orWhere($COLM, $V1 = Default, $V2 = Default)
665    $ret = __4ern_SQL_Query_where($COLM, $V1, $V2, 'OR') 676    $ret = __4ern_SQL_Query_where($COLM, $V1, $V2, 'OR')
666    Return SetError(@error, 0, $ret) 677    Return SetError(@error, 0, $ret)
667EndFunc   ;==>__4ern_SQL_Query_orWhere 678EndFunc   ;==>__4ern_SQL_Query_orWhere
668Func __4ern_SQL_Query_select($COLM, $C1 = Default, $C2 = Default, $C3 = Default, $C4 = Default, $C5 = Default, $C6 = Default, $C7 = Default, $C8 = Default, $C9 = Default) 679Func __4ern_SQL_Query_select($COLM, $C1 = Default, $C2 = Default, $C3 = Default, $C4 = Default, $C5 = Default, $C6 = Default, $C7 = Default, $C8 = Default, $C9 = Default)
669   680     
670    ;----------------------------------------------------------------------------------------------/ 681    ;----------------------------------------------------------------------------------------------/
671    ; Prüfen ob $COLM ein 2D Array ist.. 682    ; Prüfen ob $COLM ein 2D Array ist..
672    ;----------------------------------------------------------------------------------------------/ 683    ;----------------------------------------------------------------------------------------------/
673    If IsArray($COLM) Then 684    If IsArray($COLM) Then
674        If UBound($COLM, 2) <> 0 Then 685        If UBound($COLM, 2) <> 0 Then
675            __4ern_SQL_Console('error', 'SELECT -- QUERY BUILDER', 'Es sind nur 1D Arrays erlaubt') 686            __4ern_SQL_Console('error', 'SELECT -- QUERY BUILDER', 'Es sind nur 1D Arrays erlaubt')
676            Return SetError(1, 0, 0) 687            Return SetError(1, 0, 0)
677        EndIf 688        EndIf
678    EndIf 689    EndIf
679  690 
680    ;----------------------------------------------------------------------------------------------/ 691    ;----------------------------------------------------------------------------------------------/
681    ; Übergabe der Parameter an QueryBuilder 692    ; Übergabe der Parameter an QueryBuilder
682    ;----------------------------------------------------------------------------------------------/ 693    ;----------------------------------------------------------------------------------------------/
683    __4ern_SQL__QueryBuilder__select(-1, $COLM) 694    __4ern_SQL__QueryBuilder__select(-1, $COLM)
684    Local $aC = [$C1, $C2, $C3, $C4, $C5, $C6, $C7, $C8, $C9]  695    If $C1 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C1) 
685    For $key In $aC  696    If $C2 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C2) 
686        If $key <> Default Then __4ern_SQL__QueryBuilder__select(-1, $key)  697    If $C3 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C3) 
687    Next  698    If $C4 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C4) 
  699    If $C5 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C5) 
  700    If $C6 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C6) 
  701    If $C7 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C7) 
  702    If $C8 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C8) 
  703    If $C9 <> Default Then __4ern_SQL__QueryBuilder__select(-1, $C9) 
688  704 
689    Return 1 705    Return 1
690EndFunc   ;==>__4ern_SQL_Query_select 706EndFunc   ;==>__4ern_SQL_Query_select
691Func __4ern_SQL_Query_table($COLM = Default, $C1 = Default, $C2 = Default, $C3 = Default, $C4 = Default, $C5 = Default, $C6 = Default, $C7 = Default, $C8 = Default, $C9 = Default) 707Func __4ern_SQL_Query_table($COLM = Default, $C1 = Default, $C2 = Default, $C3 = Default, $C4 = Default, $C5 = Default, $C6 = Default, $C7 = Default, $C8 = Default, $C9 = Default)
692   708     
693    ;----------------------------------------------------------------------------------------------/ 709    ;----------------------------------------------------------------------------------------------/
694    ; Prüfen ob $COLM ein 2D Array ist.. 710    ; Prüfen ob $COLM ein 2D Array ist..
695    ;----------------------------------------------------------------------------------------------/ 711    ;----------------------------------------------------------------------------------------------/
696    If IsArray($COLM) Then 712    If IsArray($COLM) Then
697        If UBound($COLM, 2) <> 0 Then 713        If UBound($COLM, 2) <> 0 Then
698            __4ern_SQL_Console('error', 'TABLE -- QUERY BUILDER', 'Es sind nur 1D Arrays erlaubt') 714            __4ern_SQL_Console('error', 'TABLE -- QUERY BUILDER', 'Es sind nur 1D Arrays erlaubt')
699            Return SetError(1, 0, 0) 715            Return SetError(1, 0, 0)
700        EndIf 716        EndIf
701    EndIf 717    EndIf
702  718 
703    ;----------------------------------------------------------------------------------------------/ 719    ;----------------------------------------------------------------------------------------------/
704    ; Übergabe der Parameter an QueryBuilder 720    ; Übergabe der Parameter an QueryBuilder
705    ;----------------------------------------------------------------------------------------------/ 721    ;----------------------------------------------------------------------------------------------/
706    __4ern_SQL__QueryBuilder__table(-1, $COLM) 722    __4ern_SQL__QueryBuilder__table(-1, $COLM)
707    Local $aC = [$C1, $C2, $C3, $C4, $C5, $C6, $C7, $C8, $C9]  723    If $C1 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C1) 
708    For $key In $aC  724    If $C2 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C2) 
709        If $key <> Default Then __4ern_SQL__QueryBuilder__table(-1, $key)  725    If $C3 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C3) 
710    Next  726    If $C4 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C4) 
  727    If $C5 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C5) 
  728    If $C6 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C6) 
  729    If $C7 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C7) 
  730    If $C8 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C8) 
  731    If $C9 <> Default Then __4ern_SQL__QueryBuilder__table(-1, $C9) 
711  732 
712    Return 1 733    Return 1
713EndFunc   ;==>__4ern_SQL_Query_table 734EndFunc   ;==>__4ern_SQL_Query_table
714Func __4ern_SQL_Query_where($COLM, $V1 = Default, $V2 = Default, $METHODE = 'AND', $SET_QUE = Default) 735Func __4ern_SQL_Query_where($COLM, $V1 = Default, $V2 = Default, $METHODE = 'AND', $SET_QUE = Default)
715    Local $FO  736  
716    ;----------------------------------------------------------------------------------------------/ 737    ;----------------------------------------------------------------------------------------------/
717    ; Prüfen ob COLM ein 2D Array ist. 738    ; Prüfen ob COLM ein 2D Array ist.
718    ;----------------------------------------------------------------------------------------------/ 739    ;----------------------------------------------------------------------------------------------/
719    If IsArray($COLM) Then 740    If IsArray($COLM) Then
720        $iColm = UBound($COLM, 2) 741        $iColm = UBound($COLM, 2)
721        Select 742        Select
722  743 
723            ;----------------------------------------------------------------------------------------------/ 744            ;----------------------------------------------------------------------------------------------/
724            ; 1D Array 745            ; 1D Array
725            ;----------------------------------------------------------------------------------------------/ 746            ;----------------------------------------------------------------------------------------------/
726            Case $iColm = 0 747            Case $iColm = 0
727                __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', '2D Array erforderlich') 748                __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', '2D Array erforderlich')
728                Return SetError(1, 0, 0) 749                Return SetError(1, 0, 0)
729  750 
730                ;----------------------------------------------------------------------------------------------/ 751                ;----------------------------------------------------------------------------------------------/
731                ; 2D Array with 2 Colms 752                ; 2D Array with 2 Colms
732                ; Without Operators 753                ; Without Operators
733                ;----------------------------------------------------------------------------------------------/ 754                ;----------------------------------------------------------------------------------------------/
734            Case $iColm = 2 755            Case $iColm = 2
735                For $i = 0 To UBound($COLM) - 1 756                For $i = 0 To UBound($COLM) - 1
736                    ;----------------------------------------------------------------------------------------------/ 757                    ;----------------------------------------------------------------------------------------------/
737                    ; Unterscheidung zwischen INT & String 758                    ; Unterscheidung zwischen INT & String
738                    ;----------------------------------------------------------------------------------------------/ 759                    ;----------------------------------------------------------------------------------------------/
739                    $FO = (IsString($COLM[$i][1])) ? '%s = "%s"' : '%s = %s'  760                    If IsString($COLM[$i][1]) Then 
740                    $String = StringFormat($FO, $COLM[$i][0], $COLM[$i][1]) 761                        $String = StringFormat('%s = "%s"', $COLM[$i][0], $COLM[$i][1])
  762                    Else 
  763                        $String = StringFormat('%s = %s', $COLM[$i][0], $COLM[$i][1]) 
  764                    EndIf 
741                    ;----------------------------------------------------------------------------------------------/ 765                    ;----------------------------------------------------------------------------------------------/
742                    ; Store Where String 766                    ; Store Where String
743                    ;----------------------------------------------------------------------------------------------/ 767                    ;----------------------------------------------------------------------------------------------/
744                    __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE) 768                    __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE)
745                Next 769                Next
746  770 
747                ;----------------------------------------------------------------------------------------------/ 771                ;----------------------------------------------------------------------------------------------/
748                ; 2D Array with 3 Colms 772                ; 2D Array with 3 Colms
749                ; With Operators 773                ; With Operators
750                ;----------------------------------------------------------------------------------------------/ 774                ;----------------------------------------------------------------------------------------------/
751            Case $iColm = 3 775            Case $iColm = 3
752                For $i = 0 To UBound($COLM) - 1 776                For $i = 0 To UBound($COLM) - 1
753                    ;----------------------------------------------------------------------------------------------/ 777                    ;----------------------------------------------------------------------------------------------/
754                    ; Prüfung auf Parameter Gültigkeit 778                    ; Prüfung auf Parameter Gültigkeit
755                    ;----------------------------------------------------------------------------------------------/ 779                    ;----------------------------------------------------------------------------------------------/
756                    If (StringRegExp($COLM[$i][1], '(<>|!=|>=|<=)')) = 0 And _ 780                    If (StringRegExp($COLM[$i][1], '(<>|!=|>=|<=)')) = 0 And _
757                            (StringRegExp(StringMid($COLM[$i][1], 1, 1), '(=|<|>)')) = 0 Then 781                            (StringRegExp(StringMid($COLM[$i][1], 1, 1), '(=|<|>)')) = 0 Then
758                        ContinueLoop 782                        ContinueLoop
759                    EndIf 783                    EndIf
760  784 
761                    ;----------------------------------------------------------------------------------------------/ 785                    ;----------------------------------------------------------------------------------------------/
762                    ; Unterscheidung zwischen INT & String 786                    ; Unterscheidung zwischen INT & String
763                    ;----------------------------------------------------------------------------------------------/ 787                    ;----------------------------------------------------------------------------------------------/
764                    $FO = (IsString($COLM[$i][2])) ? '%s %s "%s"' : '%s %s %s'  788                    If IsString($COLM[$i][2]) Then 
765                    $String = StringFormat($FO, $COLM[$i][0], $COLM[$i][1], $COLM[$i][2]) 789                        $String = StringFormat('%s %s "%s"', $COLM[$i][0], $COLM[$i][1], $COLM[$i][2])
  790                    Else 
  791                        $String = StringFormat('%s %s %s', $COLM[$i][0], $COLM[$i][1], $COLM[$i][2]) 
  792                    EndIf 
  793  
766                    ;----------------------------------------------------------------------------------------------/ 794                    ;----------------------------------------------------------------------------------------------/
767                    ; Store Where String 795                    ; Store Where String
768                    ;----------------------------------------------------------------------------------------------/ 796                    ;----------------------------------------------------------------------------------------------/
769                    __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE) 797                    __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE)
770                Next 798                Next
771  799 
772                ;----------------------------------------------------------------------------------------------/ 800                ;----------------------------------------------------------------------------------------------/
773                ; 2D Array undefinierte Spalten 801                ; 2D Array undefinierte Spalten
774                ;----------------------------------------------------------------------------------------------/ 802                ;----------------------------------------------------------------------------------------------/
775            Case Else 803            Case Else
776                __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', '2D Array hat mehr als 3 Spalten') 804                __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', '2D Array hat mehr als 3 Spalten')
777                Return SetError(1, 0, 0) 805                Return SetError(1, 0, 0)
778        EndSelect 806        EndSelect
779    EndIf 807    EndIf
780  808 
781    ;----------------------------------------------------------------------------------------------/ 809    ;----------------------------------------------------------------------------------------------/
782    ; Param Übergabe 810    ; Param Übergabe
783    ;----------------------------------------------------------------------------------------------/ 811    ;----------------------------------------------------------------------------------------------/
784    ;----------------------------------------------------------------------------------------------/ 812    ;----------------------------------------------------------------------------------------------/
785    ; Prüfen ob ein Vergleichswert übergeben wurde. 813    ; Prüfen ob ein Vergleichswert übergeben wurde.
786    ;----------------------------------------------------------------------------------------------/ 814    ;----------------------------------------------------------------------------------------------/
787    If $V1 = Default Then 815    If $V1 = Default Then
788        __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', 'Es wurde kein Vergleichswert angegeben') 816        __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', 'Es wurde kein Vergleichswert angegeben')
789        Return SetError(1, 0, 0) 817        Return SetError(1, 0, 0)
790    EndIf 818    EndIf
791  819 
792    ;----------------------------------------------------------------------------------------------/ 820    ;----------------------------------------------------------------------------------------------/
793    ; Prüfe ob V1 ein Operator ist 821    ; Prüfe ob V1 ein Operator ist
794    ;----------------------------------------------------------------------------------------------/ 822    ;----------------------------------------------------------------------------------------------/
795    If (StringRegExp($V1, '(<>|!=|>=|<=)')) = 1 Or _ 823    If (StringRegExp($V1, '(<>|!=|>=|<=)')) = 1 Or _
796            (StringRegExp(StringMid($V1, 1, 1), '(=|<|>)')) = 1 Then 824            (StringRegExp(StringMid($V1, 1, 1), '(=|<|>)')) = 1 Then
797  825 
798        ;----------------------------------------------------------------------------------------------/ 826        ;----------------------------------------------------------------------------------------------/
799        ; Prüfe ob ein Vergleichswert angegeben wurde 827        ; Prüfe ob ein Vergleichswert angegeben wurde
800        ;----------------------------------------------------------------------------------------------/ 828        ;----------------------------------------------------------------------------------------------/
801        If $V2 = Default Then 829        If $V2 = Default Then
802            __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', 'Es wurde kein Vergleichswert angegeben') 830            __4ern_SQL_Console('error', 'WHERE - HAVING -- QUERY BUILDER', 'Es wurde kein Vergleichswert angegeben')
803            Return SetError(1, 0, 0) 831            Return SetError(1, 0, 0)
804        EndIf 832        EndIf
805  833 
806        ;----------------------------------------------------------------------------------------------/ 834        ;----------------------------------------------------------------------------------------------/
807        ; Unterscheidung zwischen INT & String 835        ; Unterscheidung zwischen INT & String
808        ;----------------------------------------------------------------------------------------------/ 836        ;----------------------------------------------------------------------------------------------/
809        $FO = (IsString($V2)) ? '%s %s "%s"' : '%s %s %s'  837        If IsString($V2) Then 
810        $String = StringFormat($FO, $COLM, $V1, $V2) 838            $String = StringFormat('%s %s "%s"', $COLM, $V1, $V2)
  839        Else 
  840            $String = StringFormat('%s %s %s', $COLM, $V1, $V2) 
  841        EndIf 
  842  
811        ;----------------------------------------------------------------------------------------------/ 843        ;----------------------------------------------------------------------------------------------/
812        ; Store Where String 844        ; Store Where String
813        ;----------------------------------------------------------------------------------------------/ 845        ;----------------------------------------------------------------------------------------------/
814        __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE) 846        __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE)
815        Return 1 847        Return 1
816    Else 848    Else
817        ;----------------------------------------------------------------------------------------------/ 849        ;----------------------------------------------------------------------------------------------/
818        ; Unterscheidung zwischen INT & String 850        ; Unterscheidung zwischen INT & String
819        ;----------------------------------------------------------------------------------------------/ 851        ;----------------------------------------------------------------------------------------------/
820        $FO = (IsString($V1)) ? '%s = "%s"' : '%s = %s'  852        If IsString($V1) Then 
821        $String = StringFormat($FO, $COLM, $V1) 853            $String = StringFormat('%s = "%s"', $COLM, $V1)
  854        Else 
  855            $String = StringFormat('%s = %s', $COLM, $V1) 
  856        EndIf 
822        ;----------------------------------------------------------------------------------------------/ 857        ;----------------------------------------------------------------------------------------------/
823        ; Store Where String 858        ; Store Where String
824        ;----------------------------------------------------------------------------------------------/ 859        ;----------------------------------------------------------------------------------------------/
825        __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE) 860        __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE)
826        Return 1 861        Return 1
827    EndIf 862    EndIf
828EndFunc   ;==>__4ern_SQL_Query_where 863EndFunc   ;==>__4ern_SQL_Query_where
829Func __4ern_SQL_Query_whereBetween($COLM, $V1 = Default, $V2 = Default, $METHODE = 'BETWEEN', $SET_QUE = Default) 864Func __4ern_SQL_Query_whereBetween($COLM, $V1 = Default, $V2 = Default, $METHODE = 'BETWEEN', $SET_QUE = Default)
830  865 
831    Select 866    Select
832        Case IsString($V1) 867        Case IsString($V1)
833            If IsString($V2) = 0 Then 868            If IsString($V2) = 0 Then
834                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen') 869                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen')
835                Return SetError(1, 0, 0) 870                Return SetError(1, 0, 0)
836            EndIf 871            EndIf
837            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s "%s" AND "%s"', $COLM, $METHODE, $V1, $V2), $METHODE, Default, $SET_QUE) 872            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s "%s" AND "%s"', $COLM, $METHODE, $V1, $V2), $METHODE, Default, $SET_QUE)
838  873 
839        Case IsInt($V1) 874        Case IsInt($V1)
840            If IsInt($V2) = 0 Then 875            If IsInt($V2) = 0 Then
841                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen') 876                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen')
842                Return SetError(1, 0, 0) 877                Return SetError(1, 0, 0)
843            EndIf 878            EndIf
844            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s %s AND %s', $COLM, $METHODE, $V1, $V2), $METHODE, Default, $SET_QUE) 879            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s %s AND %s', $COLM, $METHODE, $V1, $V2), $METHODE, Default, $SET_QUE)
845    EndSelect 880    EndSelect
846EndFunc   ;==>__4ern_SQL_Query_whereBetween 881EndFunc   ;==>__4ern_SQL_Query_whereBetween
847Func __4ern_SQL_Query_whereIn($COLM, $V1 = Default, $V2 = Default, $METHODE = 'IN', $SET_QUE = Default) 882Func __4ern_SQL_Query_whereIn($COLM, $V1 = Default, $V2 = Default, $METHODE = 'IN', $SET_QUE = Default)
848  883 
849    Select 884    Select
850        Case IsArray($V1) 885        Case IsArray($V1)
851            If UBound($V1, 2) = 0 Then 886            If UBound($V1, 2) = 0 Then
852                For $element In $V1 887                For $element In $V1
853                    $FO = (IsString($element)) ? '%s %s "%s"' : '%s %s %s'  888                    If IsString($element) Then 
854                    $String = StringFormat($FO, $COLM, $METHODE, $element) 889                        $String = StringFormat('%s %s "%s"', $COLM, $METHODE, $element)
  890                    Else 
  891                        $String = StringFormat('%s %s %s', $COLM, $METHODE, $element) 
  892                    EndIf 
855                Next 893                Next
856                __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE) 894                __4ern_SQL__QueryBuilder__where(-1, $String, $METHODE, Default, $SET_QUE)
857                Return 1 895                Return 1
858            EndIf 896            EndIf
859  897 
860        Case IsString($V1) 898        Case IsString($V1)
861            If IsString($V2) = 0 Then 899            If IsString($V2) = 0 Then
862                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen') 900                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen')
863                Return SetError(1, 0, 0) 901                Return SetError(1, 0, 0)
864            EndIf 902            EndIf
865            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s "%s" AND "%s"', $COLM, $METHODE, $V1, $V2), $METHODE) 903            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s "%s" AND "%s"', $COLM, $METHODE, $V1, $V2), $METHODE)
866  904 
867        Case IsInt($V1) 905        Case IsInt($V1)
868            If IsInt($V2) = 0 Then 906            If IsInt($V2) = 0 Then
869                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen') 907                __4ern_SQL_Console('error', 'WHERE ' & $METHODE & ' -- QUERY BUILDER', 'Beide Paremter muessen den selben Typ besitzen')
870                Return SetError(1, 0, 0) 908                Return SetError(1, 0, 0)
871            EndIf 909            EndIf
872            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s %s AND %s', $COLM, $METHODE, $V1, $V2), $METHODE, Default, $SET_QUE) 910            __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s %s AND %s', $COLM, $METHODE, $V1, $V2), $METHODE, Default, $SET_QUE)
873    EndSelect 911    EndSelect
874EndFunc   ;==>__4ern_SQL_Query_whereIn 912EndFunc   ;==>__4ern_SQL_Query_whereIn
875Func __4ern_SQL_Query_whereNotBetween($COLM, $V1 = Default, $V2 = Default) 913Func __4ern_SQL_Query_whereNotBetween($COLM, $V1 = Default, $V2 = Default)
876    $ret = __4ern_SQL_Query_whereBetween($COLM, $V1, $V2, 'NOT BETWEEN') 914    $ret = __4ern_SQL_Query_whereBetween($COLM, $V1, $V2, 'NOT BETWEEN')
877    Return SetError(@error, 0, $ret) 915    Return SetError(@error, 0, $ret)
878EndFunc   ;==>__4ern_SQL_Query_whereNotBetween 916EndFunc   ;==>__4ern_SQL_Query_whereNotBetween
879Func __4ern_SQL_Query_whereNotIn($COLM, $V1 = Default, $V2 = Default) 917Func __4ern_SQL_Query_whereNotIn($COLM, $V1 = Default, $V2 = Default)
880    $ret = __4ern_SQL_Query_whereIn($COLM, $V1, $V2, 'NOT IN') 918    $ret = __4ern_SQL_Query_whereIn($COLM, $V1, $V2, 'NOT IN')
881    Return SetError(@error, 0, $ret) 919    Return SetError(@error, 0, $ret)
882EndFunc   ;==>__4ern_SQL_Query_whereNotIn 920EndFunc   ;==>__4ern_SQL_Query_whereNotIn
883Func __4ern_SQL_Query_whereNotNull($COLM) 921Func __4ern_SQL_Query_whereNotNull($COLM)
884    $ret = __4ern_SQL_Query_whereNull($COLM, 'IS NOT NULL') 922    $ret = __4ern_SQL_Query_whereNull($COLM, 'IS NOT NULL')
885    Return SetError(@error, 0, $ret) 923    Return SetError(@error, 0, $ret)
886EndFunc   ;==>__4ern_SQL_Query_whereNotNull 924EndFunc   ;==>__4ern_SQL_Query_whereNotNull
887Func __4ern_SQL_Query_whereNull($COLM, $METHODE = 'IS NULL', $SET_QUE = Default) 925Func __4ern_SQL_Query_whereNull($COLM, $METHODE = 'IS NULL', $SET_QUE = Default)
888    $ret = __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s', $COLM, $METHODE), $METHODE, Default, $SET_QUE) 926    $ret = __4ern_SQL__QueryBuilder__where(-1, StringFormat('%s %s', $COLM, $METHODE), $METHODE, Default, $SET_QUE)
889    Return SetError(@error, 0, $ret) 927    Return SetError(@error, 0, $ret)
890EndFunc   ;==>__4ern_SQL_Query_whereNull 928EndFunc   ;==>__4ern_SQL_Query_whereNull
891  929 
892; #FUNCTION# ==================================================================================================================== 930; #FUNCTION# ====================================================================================================================
893; Author ........: 4ern.de 931; Author ........: 4ern.de
894; Description....: DELTE Statement 932; Description....: DELTE Statement
895; Source.........: https://www.w3schools.com/sql/sql_delete.asp 933; Source.........: https://www.w3schools.com/sql/sql_delete.asp
896; =============================================================================================================================== 934; ===============================================================================================================================
897Func __4ern_SQL_QueryBuilder_Delete() 935Func __4ern_SQL_QueryBuilder_Delete()
898  936 
899    Local $SQL = Null 937    Local $SQL = Null
900    Local $String = '' 938    Local $String = ''
901    ;----------------------------------------------------------------------------------------------/ 939    ;----------------------------------------------------------------------------------------------/
902    ; Stelle SQL String zusammen. 940    ; Stelle SQL String zusammen.
903    ;----------------------------------------------------------------------------------------------/get') 941    ;----------------------------------------------------------------------------------------------/get')
904  942 
905    $table = __4ern_SQL__QueryBuilder__table('get') 943    $table = __4ern_SQL__QueryBuilder__table('get')
906    If @error Then Return SetError(@error, 0, $table) 944    If @error Then Return SetError(@error, 0, $table)
907    $where = __4ern_SQL__QueryBuilder__where('getWhere') 945    $where = __4ern_SQL__QueryBuilder__where('getWhere')
908  946 
909    ;----------------------------------------------------------------------------------------------/ 947    ;----------------------------------------------------------------------------------------------/
910    ; Erstelle SQL String 948    ; Erstelle SQL String
911    ;----------------------------------------------------------------------------------------------/ 949    ;----------------------------------------------------------------------------------------------/
912    $SQL = StringStripWS('DELETE ' & $table & $String & $where, 4) 950    $SQL = StringStripWS('DELETE ' & $table & $String & $where, 4)
913  951 
914    ;----------------------------------------------------------------------------------------------/ 952    ;----------------------------------------------------------------------------------------------/
915    ; Feuere Abfrage ab. 953    ; Feuere Abfrage ab.
916    ;----------------------------------------------------------------------------------------------/ 954    ;----------------------------------------------------------------------------------------------/
917    Return __4ern_SQL_rawQuery($SQL, 'update()') 955    Return __4ern_SQL_rawQuery($SQL, 'update()')
918EndFunc   ;==>__4ern_SQL_QueryBuilder_Delete 956EndFunc   ;==>__4ern_SQL_QueryBuilder_Delete
919  957 
920; #FUNCTION# ==================================================================================================================== 958; #FUNCTION# ====================================================================================================================
921; Author ........: 4ern.de 959; Author ........: 4ern.de
922; Building ......: 960; Building ......:
923;                  - SELECT oder DISTINCT 961;                  - SELECT oder DISTINCT
924;                  - Take (only sqlServer) 962;                  - Take (only sqlServer)
925;                  - From Table 963;                  - From Table
926;                  - LIMIT 964;                  - LIMIT
927;                  - Joins - (in Plannung) 965;                  - Joins - (in Plannung)
928;                  - WHERE 966;                  - WHERE
929;                  - Groupby 967;                  - Groupby
930;                  - Having 968;                  - Having
931;                  - Order BY 969;                  - Order BY
932; =============================================================================================================================== 970; ===============================================================================================================================
933Func __4ern_SQL_QueryBuilder_get() 971Func __4ern_SQL_QueryBuilder_get()
934  972 
935    Local $SQL = Null 973    Local $SQL = Null
936   974     
937    ;----------------------------------------------------------------------------------------------/ 975    ;----------------------------------------------------------------------------------------------/
938    ; Stelle SQL String zusammen. 976    ; Stelle SQL String zusammen.
939    ;----------------------------------------------------------------------------------------------/ 977    ;----------------------------------------------------------------------------------------------/
940    $select = __4ern_SQL__QueryBuilder__select('get') 978    $select = __4ern_SQL__QueryBuilder__select('get')
941    $from = __4ern_SQL__QueryBuilder__table('get') 979    $from = __4ern_SQL__QueryBuilder__table('get')
942    If @error Then Return SetError(@error, 0, $from) 980    If @error Then Return SetError(@error, 0, $from)
943  981 
944    ;----------------------------------------------------------------------------------------------/ 982    ;----------------------------------------------------------------------------------------------/
945    ; Bei SQL-Server nehmen Take anstatt von LIMIT 983    ; Bei SQL-Server nehmen Take anstatt von LIMIT
946    ;----------------------------------------------------------------------------------------------/ 984    ;----------------------------------------------------------------------------------------------/
947    $limit = (__4ern_SQL_Connection() <> 'sqlServer') ? __4ern_SQL__QueryBuilder__limit(-1, 'get') : '' 985    $limit = (__4ern_SQL_Connection() <> 'sqlServer') ? __4ern_SQL__QueryBuilder__limit(-1, 'get') : ''
948    $where = __4ern_SQL__QueryBuilder__where('getWhere') 986    $where = __4ern_SQL__QueryBuilder__where('getWhere')
949    $groupBy = __4ern_SQL__QueryBuilder__groupBy('get') 987    $groupBy = __4ern_SQL__QueryBuilder__groupBy('get')
950    $having = __4ern_SQL__QueryBuilder__where('getHaving') 988    $having = __4ern_SQL__QueryBuilder__where('getHaving')
951    $orderBy = __4ern_SQL__QueryBuilder__Orderby('get') 989    $orderBy = __4ern_SQL__QueryBuilder__Orderby('get')
952  990 
953    ;----------------------------------------------------------------------------------------------/ 991    ;----------------------------------------------------------------------------------------------/
954    ; Erstelle SQL String 992    ; Erstelle SQL String
955    ;----------------------------------------------------------------------------------------------/ 993    ;----------------------------------------------------------------------------------------------/
956    $SQL = StringStripWS($select & $from & $where & $groupBy & $having & $orderBy & $limit, 4) 994    $SQL = StringStripWS($select & $from & $where & $groupBy & $having & $orderBy & $limit, 4)
957  995 
958    ;----------------------------------------------------------------------------------------------/ 996    ;----------------------------------------------------------------------------------------------/
959    ; Feuere Abfrage ab. 997    ; Feuere Abfrage ab.
960    ;----------------------------------------------------------------------------------------------/ 998    ;----------------------------------------------------------------------------------------------/
961    $ret = __4ern_SQL_rawQuery($SQL, 'get()') 999    $ret = __4ern_SQL_rawQuery($SQL, 'get()')
962    Return SetError(@error, 0, $ret) 1000    Return SetError(@error, 0, $ret)
963EndFunc   ;==>__4ern_SQL_QueryBuilder_get 1001EndFunc   ;==>__4ern_SQL_QueryBuilder_get
964  1002 
965; #FUNCTION# ==================================================================================================================== 1003; #FUNCTION# ====================================================================================================================
966; Author ........: 4ern.de 1004; Author ........: 4ern.de
967; Description....: UPDATE Statement 1005; Description....: UPDATE Statement
968; Source.........: https://www.w3schools.com/sql/sql_update.asp 1006; Source.........: https://www.w3schools.com/sql/sql_update.asp
969; =============================================================================================================================== 1007; ===============================================================================================================================
970Func __4ern_SQL_QueryBuilder_Update(ByRef $COLM, $VAL = Default) 1008Func __4ern_SQL_QueryBuilder_Update(ByRef $COLM, $VAL = Default)
971  1009 
972    Local $SQL = Null 1010    Local $SQL = Null
973    Local $String = '' 1011    Local $String = ''
974  1012 
975    ;----------------------------------------------------------------------------------------------/ 1013    ;----------------------------------------------------------------------------------------------/
976    ; Erstelle Update String 1014    ; Erstelle Update String
977    ;----------------------------------------------------------------------------------------------/ 1015    ;----------------------------------------------------------------------------------------------/
978    If IsArray($COLM) Then 1016    If IsArray($COLM) Then
979        $iColm = UBound($COLM, 2) 1017        $iColm = UBound($COLM, 2)
980        Select 1018        Select
981  1019 
982            ;----------------------------------------------------------------------------------------------/ 1020            ;----------------------------------------------------------------------------------------------/
983            ; 1D Array 1021            ; 1D Array
984            ;----------------------------------------------------------------------------------------------/ 1022            ;----------------------------------------------------------------------------------------------/
985            Case $iColm = 0 1023            Case $iColm = 0
986                __4ern_SQL_Console('error', 'UPDATE -- QUERY BUILDER', '2D Array erforderlich') 1024                __4ern_SQL_Console('error', 'UPDATE -- QUERY BUILDER', '2D Array erforderlich')
987                Return SetError(1, 0, 0) 1025                Return SetError(1, 0, 0)
988  1026 
989            Case $iColm > 2 1027            Case $iColm > 2
990                __4ern_SQL_Console('error', 'UPDATE -- QUERY BUILDER', '2D Array erforderlich') 1028                __4ern_SQL_Console('error', 'UPDATE -- QUERY BUILDER', '2D Array erforderlich')
991                Return SetError(1, 0, 0) 1029                Return SetError(1, 0, 0)
992  1030 
993                ;----------------------------------------------------------------------------------------------/ 1031                ;----------------------------------------------------------------------------------------------/
994                ; 2D Array with 2 Colms 1032                ; 2D Array with 2 Colms
995                ; Without Operators 1033                ; Without Operators
996                ;----------------------------------------------------------------------------------------------/ 1034                ;----------------------------------------------------------------------------------------------/
997            Case $iColm = 2 1035            Case $iColm = 2
998                For $i = 0 To $iColm - 1 1036                For $i = 0 To $iColm - 1
999                    If (IsString($COLM[$i][1]) = 1) And (StringRegExp($COLM[$i][1], '\w*\(\)|NULL') = 0) Then 1037                    If (IsString($COLM[$i][1]) = 1) And (StringRegExp($COLM[$i][1], '\w*\(\)|NULL') = 0) Then
1000                        $String &= StringFormat('%s="%s", ', $COLM[$i][0], $COLM[$i][1]) 1038                        $String &= StringFormat('%s="%s", ', $COLM[$i][0], $COLM[$i][1])
1001                    Else 1039                    Else
1002                        $String &= StringFormat('%s=%s, ', $COLM[$i][0], $COLM[$i][1]) 1040                        $String &= StringFormat('%s=%s, ', $COLM[$i][0], $COLM[$i][1])
1003                    EndIf 1041                    EndIf
1004                Next 1042                Next
1005                $String = StringReplace($String, ', ', '', -1) 1043                $String = StringReplace($String, ', ', '', -1)
1006        EndSelect 1044        EndSelect
1007    Else 1045    Else
1008        If $VAL = Default Then 1046        If $VAL = Default Then
1009            __4ern_SQL_Console('error', 'UPDATE -- QUERY BUILDER', 'Es wurde kein Update Wert eingegeben') 1047            __4ern_SQL_Console('error', 'UPDATE -- QUERY BUILDER', 'Es wurde kein Update Wert eingegeben')
1010            Return SetError(1, 0, 0) 1048            Return SetError(1, 0, 0)
1011        EndIf 1049        EndIf
1012        If (IsString($VAL) = 1) And (StringRegExp($VAL, '\w*\(\)|NULL') = 0) Then 1050        If (IsString($VAL) = 1) And (StringRegExp($VAL, '\w*\(\)|NULL') = 0) Then
1013            $String &= StringFormat('%s="%s" ', $COLM, $VAL) 1051            $String &= StringFormat('%s="%s" ', $COLM, $VAL)
1014        Else 1052        Else
1015            $String &= StringFormat('%s=%s ', $COLM, $VAL) 1053            $String &= StringFormat('%s=%s ', $COLM, $VAL)
1016        EndIf 1054        EndIf
1017    EndIf 1055    EndIf
1018  1056 
1019    ;----------------------------------------------------------------------------------------------/ 1057    ;----------------------------------------------------------------------------------------------/
1020    ; Stelle SQL String zusammen. 1058    ; Stelle SQL String zusammen.
1021    ;----------------------------------------------------------------------------------------------/get') 1059    ;----------------------------------------------------------------------------------------------/get')
1022  1060 
1023    $table = __4ern_SQL__QueryBuilder__table('get') 1061    $table = __4ern_SQL__QueryBuilder__table('get')
1024    If @error Then Return SetError(@error, 0, $table) 1062    If @error Then Return SetError(@error, 0, $table)
1025    $table = StringReplace($table, 'FROM', 'UPDATE') 1063    $table = StringReplace($table, 'FROM', 'UPDATE')
1026    $table = (StringSplit($table, ',', 2))[0] & ' SET ' 1064    $table = (StringSplit($table, ',', 2))[0] & ' SET '
1027    $where = __4ern_SQL__QueryBuilder__where('getWhere') 1065    $where = __4ern_SQL__QueryBuilder__where('getWhere')
1028  1066 
1029    ;----------------------------------------------------------------------------------------------/ 1067    ;----------------------------------------------------------------------------------------------/
1030    ; Erstelle SQL String 1068    ; Erstelle SQL String
1031    ;----------------------------------------------------------------------------------------------/ 1069    ;----------------------------------------------------------------------------------------------/
1032    $SQL = StringStripWS($table & $String & ' ' & $where, 4) 1070    $SQL = StringStripWS($table & $String & ' ' & $where, 4)
1033  1071 
1034    ;----------------------------------------------------------------------------------------------/ 1072    ;----------------------------------------------------------------------------------------------/
1035    ; Feuere Abfrage ab. 1073    ; Feuere Abfrage ab.
1036    ;----------------------------------------------------------------------------------------------/ 1074    ;----------------------------------------------------------------------------------------------/
1037    Return __4ern_SQL_rawQuery($SQL, 'update()') 1075    Return __4ern_SQL_rawQuery($SQL, 'update()')
1038EndFunc   ;==>__4ern_SQL_QueryBuilder_Update 1076EndFunc   ;==>__4ern_SQL_QueryBuilder_Update
1039  1077 
1040; #FUNCTION# ==================================================================================================================== 1078; #FUNCTION# ====================================================================================================================
1041; Author ........: 4ern.de 1079; Author ........: 4ern.de
1042; Description....: RAW SQL Statement 1080; Description....: RAW SQL Statement
1043; =============================================================================================================================== 1081; ===============================================================================================================================
1044Func __4ern_SQL_rawQueryExpr($SQL) 1082Func __4ern_SQL_rawQueryExpr($SQL)
1045    __4ern_SQL_rawQuery($SQL, 'get()') 1083    __4ern_SQL_rawQuery($SQL, 'get()')
1046EndFunc   ;==>__4ern_SQL_rawQueryExpr 1084EndFunc   ;==>__4ern_SQL_rawQueryExpr
1047  1085