M:\romaSql-1.0.2\romaSql.au3 F:\_Archive\_Programmieren\AutoIt3\User\4ern\romaSql-1.0.2\romaSql.au3
1;-- TIME_STAMP   2017-03-05 19:41:08   v 0.1    
2    
3#include-once    
4#include <Array.au3> 1#include <Array.au3>
5#include 'queryBuilder.au3' 2#include 'queryBuilder.au3'
6  3 
7; #INDEX# ======================================================================================================================= 4; #INDEX# =======================================================================================================================
8; Title .........: SQL Query Builder 5; Title .........: SQL Query Builder
9; AutoIt Version : 3.3.14.2 6; AutoIt Version : 3.3.14.2
10; Language ......: German 7; Language ......: German
11; Description ...: SQL Query Builder 8; Description ...: SQL Query Builder
12; Insperiert of .: doctrine & Laravel 9; Insperiert of .: doctrine & Laravel
13; Author(s) .....: 4ern.de 10; Author(s) .....: 4ern.de
14; =============================================================================================================================== 11; ===============================================================================================================================
15  12 
16; #Commands# ===================================================================================================================== 13; #Commands# =====================================================================================================================
17; $SQL_debug 14; $SQL_debug
18; $SQL_connect 15; $SQL_connect
19; $SQL_returnType 16; $SQL_returnType
20; $SQL_setDefaultTable 17; $SQL_setDefaultTable
21; $SQL_setDefaultKey 18; $SQL_setDefaultKey
22  19 
23; $SQL_get 20; $SQL_get
24; $SQL_update 21; $SQL_update
25; $SQL_delete 22; $SQL_delete
26; $SQL_insertInto 23; $SQL_insertInto
27; $SQL_take 24; $SQL_take
28; $SQL_limit 25; $SQL_limit
29; $SQL_table 26; $SQL_table
30; $SQL_select 27; $SQL_select
31; $SQL_distinct 28; $SQL_distinct
32; 29;
33; $SQL_where 30; $SQL_where
34; $SQL_orWhere 31; $SQL_orWhere
35; $SQL_whereBetween 32; $SQL_whereBetween
36; $SQL_whereNotBetween 33; $SQL_whereNotBetween
37; $SQL_whereIn 34; $SQL_whereIn
38; $SQL_whereNotIn 35; $SQL_whereNotIn
39; $SQL_whereNull 36; $SQL_whereNull
40; $SQL_whereNotNull 37; $SQL_whereNotNull
41; $SQL_having 38; $SQL_having
42; $SQL_orHaving 39; $SQL_orHaving
43; $SQL_havingBetween 40; $SQL_havingBetween
44; $SQL_havingNotBetween 41; $SQL_havingNotBetween
45; $SQL_havingIn 42; $SQL_havingIn
46; $SQL_havingNotIn 43; $SQL_havingNotIn
47; $SQL_havingNull 44; $SQL_havingNull
48; $SQL_havingNotNull 45; $SQL_havingNotNull
49; $SQL_groupBy 46; $SQL_groupBy
50; $SQL_orderBy 47; $SQL_orderBy
51; =============================================================================================================================== 48; ===============================================================================================================================
52  49 
53; #IN PLANNING# ================================================================================================================= 50; #IN PLANNING# =================================================================================================================
54; + Database 51; + Database
55;   - SQL Create Table 52;   - SQL Create Table
56;   - SQL Drop Table 53;   - SQL Drop Table
57;   - SQL Truncate Table 54;   - SQL Truncate Table
58;   - SQL Alter 55;   - SQL Alter
59;   - SQL View 56;   - SQL View
60; + Aggregates 57; + Aggregates
61;   - SQL AVG() Function 58;   - SQL AVG() Function
62;   - SQL COUNT() Function 59;   - SQL COUNT() Function
63;   - SQL SUM() Function 60;   - SQL SUM() Function
64;   - SQL MAX() Function 61;   - SQL MAX() Function
65;   - SQL MIN() Function 62;   - SQL MIN() Function
66; + SQL Joins 63; + SQL Joins
67;   - SQL INNER JOIN 64;   - SQL INNER JOIN
68;   - SQL LEFT JOIN 65;   - SQL LEFT JOIN
69;   - SQL RIGHT JOIN 66;   - SQL RIGHT JOIN
70; + Unions 67; + Unions
71; + Oracle Connection 68; + Oracle Connection
72; + PostgrSQl Connection 69; + PostgrSQl Connection
73; =============================================================================================================================== 70; ===============================================================================================================================
74  71 
75; #INTERNAL_USE_ONLY# =========================================================================================================== 72; #INTERNAL_USE_ONLY# ===========================================================================================================
76; __4ern_SQL__IsDefault         ;thx BugFix 73; __4ern_SQL__IsDefault         ;thx BugFix
77; __4ern_SQL_rawQuery 74; __4ern_SQL_rawQuery
78; __4ern_SQL_raw_getAll 75; __4ern_SQL_raw_getAll
79; __4ern_SQL_raw_getFirst 76; __4ern_SQL_raw_getFirst
80; __4ern_SQL__QueryBuilder__table 77; __4ern_SQL__QueryBuilder__table
81; __4ern_SQL__QueryBuilder__SELECT 78; __4ern_SQL__QueryBuilder__SELECT
82; __4ern_SQL__QueryBuilder__WHERE 79; __4ern_SQL__QueryBuilder__WHERE
83; __4ern_SQL__QueryBuilder__groupBy 80; __4ern_SQL__QueryBuilder__groupBy
84; __4ern_SQL__QueryBuilder__Orderby 81; __4ern_SQL__QueryBuilder__Orderby
85; =============================================================================================================================== 82; ===============================================================================================================================
86  83 
87; #GLOBAL CONSTANTS# ============================================================================================================ 84; #GLOBAL CONSTANTS# ============================================================================================================
88; FUNKTIONS KONSTANTEN 85; FUNKTIONS KONSTANTEN
89; =============================================================================================================================== 86; ===============================================================================================================================
90$SQL_debug = __4ern_SQL_Console_startUp 87$SQL_debug = __4ern_SQL_Console_startUp
91$SQL_connect = __4ern_SQL_Connect 88$SQL_connect = __4ern_SQL_Connect
92$SQL_returnType = __4ern_SQL_defReturn 89$SQL_returnType = __4ern_SQL_defReturn
93$SQL_setDefaultTable = __4ern_SQL__QueryBuilder__setTable 90$SQL_setDefaultTable = __4ern_SQL__QueryBuilder__setTable
94$SQL_setDefaultKey = __4ern_SQL__QueryBuilder__setkey 91$SQL_setDefaultKey = __4ern_SQL__QueryBuilder__setkey
95$SQL_setDatabase = __4ern_set_SQL_Connection 92$SQL_setDatabase = __4ern_set_SQL_Connection
96  93 
97$SQL_get = __4ern_SQL_QueryBuilder_get 94$SQL_get = __4ern_SQL_QueryBuilder_get
98$SQL_update = __4ern_SQL_QueryBuilder_Update 95$SQL_update = __4ern_SQL_QueryBuilder_Update
99$SQL_delete = __4ern_SQL_QueryBuilder_Delete 96$SQL_delete = __4ern_SQL_QueryBuilder_Delete
100$SQL_insertInto = __4ern_SQL_Query_insert 97$SQL_insertInto = __4ern_SQL_Query_insert
101$SQL_take = __4ern_SQL__QueryBuilder__limit 98$SQL_take = __4ern_SQL__QueryBuilder__limit
102$SQL_limit = __4ern_SQL__QueryBuilder__limit 99$SQL_limit = __4ern_SQL__QueryBuilder__limit
103$SQL_table = __4ern_SQL_Query_table 100$SQL_table = __4ern_SQL_Query_table
104$SQL_select = __4ern_SQL_Query_select 101$SQL_select = __4ern_SQL_Query_select
105$SQL_distinct = __4ern_SQL_Query_distinct 102$SQL_distinct = __4ern_SQL_Query_distinct
106$SQL_where = __4ern_SQL_Query_where 103$SQL_where = __4ern_SQL_Query_where
107$SQL_orWhere = __4ern_SQL_Query_orWhere 104$SQL_orWhere = __4ern_SQL_Query_orWhere
108$SQL_whereBetween = __4ern_SQL_Query_whereBetween 105$SQL_whereBetween = __4ern_SQL_Query_whereBetween
109$SQL_whereNotBetween = __4ern_SQL_Query_whereNotBetween 106$SQL_whereNotBetween = __4ern_SQL_Query_whereNotBetween
110$SQL_whereIn = __4ern_SQL_Query_whereIn 107$SQL_whereIn = __4ern_SQL_Query_whereIn
111$SQL_whereNotIn = __4ern_SQL_Query_whereNotIn 108$SQL_whereNotIn = __4ern_SQL_Query_whereNotIn
112$SQL_whereNull = __4ern_SQL_Query_whereNull 109$SQL_whereNull = __4ern_SQL_Query_whereNull
113$SQL_whereNotNull = __4ern_SQL_Query_whereNotNull 110$SQL_whereNotNull = __4ern_SQL_Query_whereNotNull
114$SQL_having = __4ern_SQL_Query_having 111$SQL_having = __4ern_SQL_Query_having
115$SQL_orHaving = __4ern_SQL_Query_orHaving 112$SQL_orHaving = __4ern_SQL_Query_orHaving
116$SQL_havingBetween = __4ern_SQL_Query_havingBetween 113$SQL_havingBetween = __4ern_SQL_Query_havingBetween
117$SQL_havingNotBetween = __4ern_SQL_Query_havingNotBetween 114$SQL_havingNotBetween = __4ern_SQL_Query_havingNotBetween
118$SQL_havingIn = __4ern_SQL_Query_havingIn 115$SQL_havingIn = __4ern_SQL_Query_havingIn
119$SQL_havingNotIn = __4ern_SQL_Query_havingNotIn 116$SQL_havingNotIn = __4ern_SQL_Query_havingNotIn
120$SQL_havingNull = __4ern_SQL_Query_havingNull 117$SQL_havingNull = __4ern_SQL_Query_havingNull
121$SQL_havingNotNull = __4ern_SQL_Query_havingNotNull 118$SQL_havingNotNull = __4ern_SQL_Query_havingNotNull
122$SQL_groupBy = __4ern_SQL__QueryBuilder__groupBy 119$SQL_groupBy = __4ern_SQL__QueryBuilder__groupBy
123$SQL_orderBy = __4ern_SQL_Query_orderBy 120$SQL_orderBy = __4ern_SQL_Query_orderBy
124$SQL_raw = __4ern_SQL_rawQueryExpr 121$SQL_raw = __4ern_SQL_rawQueryExpr
125  122 
126; #FUNCTION# ==================================================================================================================== 123; #FUNCTION# ====================================================================================================================
127; Author ........: 4ern.de 124; Author ........: 4ern.de
  125; Description....: AU3 Check Syntax  
  126; Source.........: queryBuilder.au3  
  127; ===============================================================================================================================  
  128#ignorefunc __4ern_SQL__QueryBuilder__setTable  
  129#ignorefunc __4ern_SQL__QueryBuilder__setkey  
  130#ignorefunc __4ern_SQL_QueryBuilder_get  
  131#ignorefunc __4ern_SQL_QueryBuilder_Update  
  132#ignorefunc __4ern_SQL_QueryBuilder_Delete  
  133#ignorefunc __4ern_SQL_Query_insert  
  134#ignorefunc __4ern_SQL__QueryBuilder__limit  
  135#ignorefunc __4ern_SQL_Query_table  
  136#ignorefunc __4ern_SQL_Query_select  
  137#ignorefunc __4ern_SQL_Query_distinct  
  138#ignorefunc __4ern_SQL_Query_where  
  139#ignorefunc __4ern_SQL_Query_orWhere  
  140#ignorefunc __4ern_SQL_Query_whereBetween  
  141#ignorefunc __4ern_SQL_Query_whereNotBetween  
  142#ignorefunc __4ern_SQL_Query_whereIn  
  143#ignorefunc __4ern_SQL_Query_whereNotIn  
  144#ignorefunc __4ern_SQL_Query_whereNull  
  145#ignorefunc __4ern_SQL_Query_whereNotNull  
  146#ignorefunc __4ern_SQL_Query_having  
  147#ignorefunc __4ern_SQL_Query_orHaving  
  148#ignorefunc __4ern_SQL_Query_havingBetween  
  149#ignorefunc __4ern_SQL_Query_havingNotBetween  
  150#ignorefunc __4ern_SQL_Query_havingIn  
  151#ignorefunc __4ern_SQL_Query_havingNotIn  
  152#ignorefunc __4ern_SQL_Query_havingNull  
  153#ignorefunc __4ern_SQL_Query_havingNotNull  
  154#ignorefunc __4ern_SQL__QueryBuilder__groupBy  
  155#ignorefunc __4ern_SQL_Query_orderBy  
  156#ignorefunc __4ern_SQL_rawQueryExpr  
  157  
  158; #FUNCTION# ====================================================================================================================  
  159; Author ........: 4ern.de  
128; Description....: set Default Database 160; Description....: set Default Database
129; ...............: Default: MySQL 161; ...............: Default: MySQL
130; =============================================================================================================================== 162; ===============================================================================================================================
131Func __4ern_set_SQL_Connection($database = 'mysql') 163Func __4ern_set_SQL_Connection($database = 'mysql')
132    __4ern_SQL_Connection('set', -1, -1, -1, -1, -1, $database) 164    __4ern_SQL_Connection('set', -1, -1, -1, -1, -1, $database)
133EndFunc   ;==>__4ern_set_SQL_Connection 165EndFunc   ;==>__4ern_set_SQL_Connection
134  166 
135; #FUNCTION# ==================================================================================================================== 167; #FUNCTION# ====================================================================================================================
136; Author ........: BugFix 168; Author ........: BugFix
137; =============================================================================================================================== 169; ===============================================================================================================================
138Func __4ern_SQL__IsDefault($var, $sOtherDefaults = '-0', $sDelim = Default) 170Func __4ern_SQL__IsDefault($var, $sOtherDefaults = '-0', $sDelim = Default)
139    Local $aDef[1] = [0], $match = 0 171    Local $aDef[1] = [0], $match = 0
140    If IsKeyword($sDelim) Then $sDelim = Opt('GUIDataSeparatorChar') 172    If IsKeyword($sDelim) Then $sDelim = Opt('GUIDataSeparatorChar')
141    If $sOtherDefaults <> '-0' Then $aDef = StringSplit($sOtherDefaults, $sDelim, 1) 173    If $sOtherDefaults <> '-0' Then $aDef = StringSplit($sOtherDefaults, $sDelim, 1)
142    If Not $aDef[0] Then Return IsKeyword($var) 174    If Not $aDef[0] Then Return IsKeyword($var)
143    For $i = 1 To $aDef[0] 175    For $i = 1 To $aDef[0]
144        If $var = $aDef[$i] Then $match = 1 176        If $var = $aDef[$i] Then $match = 1
145    Next 177    Next
146    If Not $match Then Return IsKeyword($var) 178    If Not $match Then Return IsKeyword($var)
147    Return 1 179    Return 1
148EndFunc   ;==>__4ern_SQL__IsDefault 180EndFunc   ;==>__4ern_SQL__IsDefault
149  181 
150; #FUNCTION# ==================================================================================================================== 182; #FUNCTION# ====================================================================================================================
151; Author ........: 4ern.de 183; Author ........: 4ern.de
152; Description....: MSSQL ADO Connection Object 184; Description....: MSSQL ADO Connection Object
153; ===================================================================================================================== 185; =====================================================================================================================
154Func __4ern_SQL_Connect($pDB = Default, $pUSER = Default, $pPASSWORD = Default, $pSERVER = Default, $pDRIVER = Default, $action = Default) 186Func __4ern_SQL_Connect($pDB = Default, $pUSER = Default, $pPASSWORD = Default, $pSERVER = Default, $pDRIVER = Default, $action = Default)
155   187     
156    ;----------------------------------------------------------------------------------------------/ 188    ;----------------------------------------------------------------------------------------------/
157    ; Deklaration 189    ; Deklaration
158    ;----------------------------------------------------------------------------------------------/ 190    ;----------------------------------------------------------------------------------------------/
159    Global $gO__4ern_SQLError = ObjEvent("AutoIt.Error", "__4ern_SQL_errFunc") 191    Global $gO__4ern_SQLError = ObjEvent("AutoIt.Error", "__4ern_SQL_errFunc")
160    Local Static $oCon, $SERVER = Null, $DB = Null, $USER = Null, $PASSWORD = Null, $DRIVER, $conInfo = Null 192    Local Static $oCon, $SERVER = Null, $DB = Null, $USER = Null, $PASSWORD = Null, $DRIVER, $conInfo = Null
161  193 
162    ;----------------------------------------------------------------------------------------------/ 194    ;----------------------------------------------------------------------------------------------/
163    ; Erstelle ein ADODB Verbindung 195    ; Erstelle ein ADODB Verbindung
164    ;----------------------------------------------------------------------------------------------/ 196    ;----------------------------------------------------------------------------------------------/
165    $oCon = ObjCreate('ADODB.Connection') 197    $oCon = ObjCreate('ADODB.Connection')
166    $oCon.ConnectionTimeout = 30 198    $oCon.ConnectionTimeout = 30
167  199 
168    ;----------------------------------------------------------------------------------------------/ 200    ;----------------------------------------------------------------------------------------------/
169    ; Setze DEFAULTS 201    ; Setze DEFAULTS
170    ;----------------------------------------------------------------------------------------------/ 202    ;----------------------------------------------------------------------------------------------/
171    If $action = Default Then $action = 'get()' 203    If $action = Default Then $action = 'get()'
172    If $pDB <> Default Then $DB = $pDB 204    If $pDB <> Default Then $DB = $pDB
173    If $pUSER <> Default Then $USER = $pUSER 205    If $pUSER <> Default Then $USER = $pUSER
174    If $pPASSWORD <> Default Then $PASSWORD = $pPASSWORD 206    If $pPASSWORD <> Default Then $PASSWORD = $pPASSWORD
175    If $pSERVER <> Default Then $SERVER = $pSERVER 207    If $pSERVER <> Default Then $SERVER = $pSERVER
176    If $pDRIVER <> Default Then $DRIVER = $pDRIVER 208    If $pDRIVER <> Default Then $DRIVER = $pDRIVER
177  209 
178    ;----------------------------------------------------------------------------------------------/ 210    ;----------------------------------------------------------------------------------------------/
179    ; Prüfe ob alle Zugangsparameter vorhanden sind. 211    ; Prüfe ob alle Zugangsparameter vorhanden sind.
180    ;----------------------------------------------------------------------------------------------/ 212    ;----------------------------------------------------------------------------------------------/
181    $errorLogin = False 213    $errorLogin = False
182    Switch __4ern_SQL_Connection() 214    Switch __4ern_SQL_Connection()
183        Case 'mySql', 'sqlServer'  215        Case 'mySql' 
184            If $DB = Null Or $USER = Null Or $PASSWORD = Null Or $SERVER = Null Then $errorLogin = True 216            If ($DB = Null) Or ($USER = Null) Or ($PASSWORD = Null) Or ($SERVER = Null) Then $errorLogin = True
  217        Case 'sqlServer' 
  218            If ($DB = Null) Or ($USER = Null) Or ($PASSWORD = Null) Or ($SERVER = Null) Then $errorLogin = True 
185        Case 'access' 219        Case 'access'
186            If $DB = Null Or $USER = Null Or $PASSWORD = Null Then $errorLogin = True 220            If ($DB = Null) Or ($USER = Null) Or ($PASSWORD = Null) Then $errorLogin = True
187        Case 'sqLite' 221        Case 'sqLite'
188            If $DB = Null Then $errorLogin = True 222            If ($DB = Null) Then $errorLogin = True
189    EndSwitch 223    EndSwitch
190   224     
191    If ($errorLogin = True) Then 225    If ($errorLogin = True) Then
192        __4ern_SQL_Console('error', 'Fehler!', 'Eines der Zugangsparameter´oder der Datenbankpfad wurde nicht angegeben.') 226        __4ern_SQL_Console('error', 'Fehler!', 'Eines der Zugangsparameter´oder der Datenbankpfad wurde nicht angegeben.')
193        Return SetError(1) 227        Return SetError(1)
194    EndIf 228    EndIf
195  229 
196    ;----------------------------------------------------------------------------------------------/ 230    ;----------------------------------------------------------------------------------------------/
197    ; Connection Information 231    ; Connection Information
198    ;----------------------------------------------------------------------------------------------/ 232    ;----------------------------------------------------------------------------------------------/
199    If $conInfo == Null Then 233    If $conInfo == Null Then
200        __4ern_SQL_Console('info', 'Connection String', _  234        __4ern_SQL_Console('info', 'Connection String', StringFormat('DATABASE=%s, SERVER=%s, DATABASE=%s, $USER=%s, PW=***, TimeOut=%s', __4ern_SQL_Connection(), $SERVER, $DB, $USER, $oCon.ConnectionTimeout)) 
201                StringFormat('DATABASE=%s, SERVER=%s, DATABASE=%s, $USER=%s, PW=***, TimeOut=%s', _   
202                __4ern_SQL_Connection(), $SERVER, $DB, $USER, $oCon.ConnectionTimeout))   
203        $conInfo = 1 235        $conInfo = 1
204    EndIf 236    EndIf
205  237 
206    ;----------------------------------------------------------------------------------------------/ 238    ;----------------------------------------------------------------------------------------------/
207    ; Schließe Connection falls diese offen ist. 239    ; Schließe Connection falls diese offen ist.
208    ;----------------------------------------------------------------------------------------------/ 240    ;----------------------------------------------------------------------------------------------/
209    If Not $oCon.state = 0 Then $oCon.close 241    If Not $oCon.state = 0 Then $oCon.close
210  242 
211    ;----------------------------------------------------------------------------------------------/ 243    ;----------------------------------------------------------------------------------------------/
212    ; Action 244    ; Action
213    ;----------------------------------------------------------------------------------------------/ 245    ;----------------------------------------------------------------------------------------------/
214    Switch $action 246    Switch $action
215  247 
216        ;----------------------------------------------------------------------------------------------/ 248        ;----------------------------------------------------------------------------------------------/
217        ; Verbindungsaufbau 249        ; Verbindungsaufbau
218        ;----------------------------------------------------------------------------------------------/ 250        ;----------------------------------------------------------------------------------------------/
219        Case 'write()' 251        Case 'write()'
220   252             
221            ;----------------------------------------------------------------------------------------------/ 253            ;----------------------------------------------------------------------------------------------/
222            ; Wenn Objekt erstellt wurde, stelle Verbindung her. 254            ; Wenn Objekt erstellt wurde, stelle Verbindung her.
223            ;----------------------------------------------------------------------------------------------/ 255            ;----------------------------------------------------------------------------------------------/
224            If IsObj($oCon) Then 256            If IsObj($oCon) Then
225                ;----------------------------------------------------------------------------------------------/ 257                ;----------------------------------------------------------------------------------------------/
226                ; Object Mode 258                ; Object Mode
227                ;----------------------------------------------------------------------------------------------/ 259                ;----------------------------------------------------------------------------------------------/
228                $oCon.Mode = 16 260                $oCon.Mode = 16
229  261 
230            Else 262            Else
231                __4ern_SQL_Console('error', '$oCon = ObjCreate', 'ADODB Objekt konnte nicht erstellt werden.') 263                __4ern_SQL_Console('error', '$oCon = ObjCreate', 'ADODB Objekt konnte nicht erstellt werden.')
232                Return SetError(3, '', 0) 264                Return SetError(3, '', 0)
233            EndIf 265            EndIf
234  266 
235            ;----------------------------------------------------------------------------------------------/ 267            ;----------------------------------------------------------------------------------------------/
236            ; Beende die ADODB Verbindung 268            ; Beende die ADODB Verbindung
237            ;----------------------------------------------------------------------------------------------/ 269            ;----------------------------------------------------------------------------------------------/
238        Case 'get()' 270        Case 'get()'
239  271 
240            ;----------------------------------------------------------------------------------------------/ 272            ;----------------------------------------------------------------------------------------------/
241            ; Wenn Objekt erstellt wurde, stelle Verbindung her. 273            ; Wenn Objekt erstellt wurde, stelle Verbindung her.
242            ;----------------------------------------------------------------------------------------------/ 274            ;----------------------------------------------------------------------------------------------/
243            If IsObj($oCon) Then 275            If IsObj($oCon) Then
244                ;----------------------------------------------------------------------------------------------/ 276                ;----------------------------------------------------------------------------------------------/
245                ; Cursor Side 277                ; Cursor Side
246                ;----------------------------------------------------------------------------------------------/ 278                ;----------------------------------------------------------------------------------------------/
247                $oCon.CursorLocation = 3 279                $oCon.CursorLocation = 3
248  280 
249            Else 281            Else
250                __4ern_SQL_Console('error', '$oCon = ObjCreate', 'ADODB Objekt konnte nicht erstellt werden.') 282                __4ern_SQL_Console('error', '$oCon = ObjCreate', 'ADODB Objekt konnte nicht erstellt werden.')
251                Return SetError(3, '', 0) 283                Return SetError(3, '', 0)
252            EndIf 284            EndIf
253  285 
254        Case 'reset()' 286        Case 'reset()'
255            $oCon.close 287            $oCon.close
256            $conInfo = Null 288            $conInfo = Null
257            $SERVER = Null 289            $SERVER = Null
258            $DB = Null 290            $DB = Null
259            $USER = Null 291            $USER = Null
260            $PASSWORD = Null 292            $PASSWORD = Null
261            Return 293            Return
262    EndSwitch 294    EndSwitch
263  295 
264    ;----------------------------------------------------------------------------------------------/ 296    ;----------------------------------------------------------------------------------------------/
265    ; SQL Server     Connection String 297    ; SQL Server Connection String
266    ;----------------------------------------------------------------------------------------------/ 298    ;----------------------------------------------------------------------------------------------/
267    $oCon.Open(__4ern_SQL_Connection('getConnectionString', $SERVER, $DB, $USER, $PASSWORD, $DRIVER)) 299    $oCon.Open(__4ern_SQL_Connection('getConnectionString', $SERVER, $DB, $USER, $PASSWORD, $DRIVER))
268    If @error Then 300    If @error Then
269        __4ern_SQL_Console('error', '$oCon.Open', 'Verbindung zum Server konnte nicht hergestellt werden.') 301        __4ern_SQL_Console('error', '$oCon.Open', 'Verbindung zum Server konnte nicht hergestellt werden.')
270        Return SetError(2, '', 0) 302        Return SetError(2, '', 0)
271    EndIf 303    EndIf
272   304     
273    ;----------------------------------------------------------------------------------------------/ 305    ;----------------------------------------------------------------------------------------------/
274    ; Retrun ADO Connection Object 306    ; Retrun ADO Connection Object
275    ;----------------------------------------------------------------------------------------------/ 307    ;----------------------------------------------------------------------------------------------/
276    Return $oCon 308    Return $oCon
277EndFunc   ;==>__4ern_SQL_Connect 309EndFunc   ;==>__4ern_SQL_Connect
278  310 
279; #FUNCTION# ==================================================================================================================== 311; #FUNCTION# ====================================================================================================================
280; Author ........: 4ern.de 312; Author ........: 4ern.de
281; Description....: set Connectionstrings 313; Description....: set Connectionstrings
282; ...............: Default: MySQL 314; ...............: Default: MySQL
283; ...............: ConnectionString 315; ...............: ConnectionString
284; 316;
285; ...............: https://www.connectionstrings.com 317; ...............: https://www.connectionstrings.com
286; =============================================================================================================================== 318; ===============================================================================================================================
287Func __4ern_SQL_Connection($action = 'getDatabase', $SERVER = Null, $DB = Null, $USER = Null, $PASSWORD = Null, $DRIVER = Null, $database = Null) 319Func __4ern_SQL_Connection($action = 'getDatabase', $SERVER = Null, $DB = Null, $USER = Null, $PASSWORD = Null, $DRIVER = Null, $database = Null)
288   320     
289    Local Static $databaseDefault 321    Local Static $databaseDefault
290  322 
291    ;----------------------------------------------------------------------------------------------/ 323    ;----------------------------------------------------------------------------------------------/
292    ; setze die Standart Datenbank 324    ; setze die Standart Datenbank
293    ;----------------------------------------------------------------------------------------------/ 325    ;----------------------------------------------------------------------------------------------/
294    If $action = 'set' Then 326    If $action = 'set' Then
295        $databaseDefault = $database 327        $databaseDefault = $database
296        Return $databaseDefault 328        Return $databaseDefault
297    EndIf 329    EndIf
298  330 
299    ;----------------------------------------------------------------------------------------------/ 331    ;----------------------------------------------------------------------------------------------/
300    ; Übergebe die gesetzte Database 332    ; Übergebe die gesetzte Database
301    ;----------------------------------------------------------------------------------------------/ 333    ;----------------------------------------------------------------------------------------------/
302    If $action = 'getDatabase' Then Return $databaseDefault 334    If $action = 'getDatabase' Then Return $databaseDefault
303  335 
304    ;----------------------------------------------------------------------------------------------/ 336    ;----------------------------------------------------------------------------------------------/
305    ; Übergebe den Connectionstring 337    ; Übergebe den Connectionstring
306    ;----------------------------------------------------------------------------------------------/ 338    ;----------------------------------------------------------------------------------------------/
307    If $action = 'getConnectionString' Then 339    If $action = 'getConnectionString' Then
308        Switch $databaseDefault 340        Switch $databaseDefault
309   341             
310            Case 'mySql' 342            Case 'mySql'
311                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then _   343                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then  
312                        Return StringFormat('Driver={MySQL ODBC 5.3 ANSI Driver};Server=%s;Database=%s;User=%s;Password=%s;', $SERVER, $DB, $USER, $PASSWORD) 344                    Return StringFormat('Driver={MySQL ODBC 5.3 ANSI Driver};Server=%s;Database=%s;User=%s;Password=%s;', $SERVER, $DB, $USER, $PASSWORD)
  345                EndIf 
313                Return StringFormat('Driver={%s};Server=%s;Database=%s;User=%s;Password=%s;', $DRIVER, $SERVER, $DB, $USER, $PASSWORD) 346                Return StringFormat('Driver={%s};Server=%s;Database=%s;User=%s;Password=%s;', $DRIVER, $SERVER, $DB, $USER, $PASSWORD)
314   347                 
315            Case 'sqlServer' 348            Case 'sqlServer'
316                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then _   349                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then  
317                        Return StringFormat('DRIVER={SQL Server};SERVER=%s;DATABASE=%s;uid=%s;pwd=%s;', $SERVER, $DB, $USER, $PASSWORD) 350                    Return StringFormat('DRIVER={SQL Server};SERVER=%s;DATABASE=%s;uid=%s;pwd=%s;', $SERVER, $DB, $USER, $PASSWORD)
  351                EndIf 
318                Return StringFormat('DRIVER={%s};SERVER=%s;DATABASE=%s;uid=%s;pwd=%s;', $DRIVER, $SERVER, $DB, $USER, $PASSWORD) 352                Return StringFormat('DRIVER={%s};SERVER=%s;DATABASE=%s;uid=%s;pwd=%s;', $DRIVER, $SERVER, $DB, $USER, $PASSWORD)
319   353                 
320            Case 'access' 354            Case 'access'
321                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then _   355                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then  
322                        Return StringFormat('Driver={Microsoft Access Driver (*.mdb)};%s;Uid=%s;Pwd=%s;', $DB, $USER, $PASSWORD) 356                    Return StringFormat('Driver={Microsoft Access Driver (*.mdb)};%s;Uid=%s;Pwd=%s;', $DB, $USER, $PASSWORD)
  357                EndIf 
323                Return StringFormat('Driver={%s};%s;Uid=%s;Pwd=%s;', $DRIVER, $DB, $USER, $PASSWORD) 358                Return StringFormat('Driver={%s};%s;Uid=%s;Pwd=%s;', $DRIVER, $DB, $USER, $PASSWORD)
324  359 
325            Case 'sqLite' 360            Case 'sqLite'
326                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then _   361                If __4ern_SQL__IsDefault($DRIVER, '-1,', ',') Then  
327                        Return StringFormat('DRIVER=SQLite3 ODBC Driver;Database=%s;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;', $DB) 362                    Return StringFormat('DRIVER=SQLite3 ODBC Driver;Database=%s;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;', $DB)
  363                EndIf 
328                Return StringFormat('DRIVER=%s;Database=%s;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;', $DRIVER, $DB) 364                Return StringFormat('DRIVER=%s;Database=%s;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;', $DRIVER, $DB)
329        EndSwitch 365        EndSwitch
330    EndIf 366    EndIf
331EndFunc   ;==>__4ern_SQL_Connection 367EndFunc   ;==>__4ern_SQL_Connection
332Func __4ern_SQL_Console($action = Default, $PTITEL = 'none', $PTXT = 'none') 368Func __4ern_SQL_Console($action = Default, $PTITEL = 'none', $PTXT = 'none')
333   369     
334    Local Static $Output = Null 370    Local Static $Output = Null
335  371 
336    ;----------------------------------------------------------------------------------------------/ 372    ;----------------------------------------------------------------------------------------------/
337    ; Art der Ausgabe! 373    ; Art der Ausgabe!
338    ;-------------------------------------------------s---------------------------------------------/ 374    ;-------------------------------------------------s---------------------------------------------/
339    Select 375    Select
340        ;----------------------------------------------------------------------------------------------/ 376        ;----------------------------------------------------------------------------------------------/
341        ; Output to Console 377        ; Output to Console
342        ;----------------------------------------------------------------------------------------------/ 378        ;----------------------------------------------------------------------------------------------/
343        Case $Output == 'Console' 379        Case $Output == 'Console'
344            Switch $action 380            Switch $action
345                Case 'error' 381                Case 'error'
346                    $str = @CRLF & '*** FEHLER - ERROR **************************************************************************************' 382                    $str = @CRLF & '*** FEHLER - ERROR **************************************************************************************'
347                    $str &= @CRLF & '- Funktion:' & @TAB & @TAB & $PTITEL 383                    $str &= @CRLF & '- Funktion:' & @TAB & @TAB & $PTITEL
348                    $str &= @CRLF & '- TEXT:' & @TAB & @TAB & @TAB & $PTXT 384                    $str &= @CRLF & '- TEXT:' & @TAB & @TAB & @TAB & $PTXT
349                    $str &= @CRLF & '*********************************************************************************************************' 385                    $str &= @CRLF & '*********************************************************************************************************'
350   386                     
351                Case 'warning' 387                Case 'warning'
352                    $str = @CRLF & '*** Warning *********************************************************************************************' 388                    $str = @CRLF & '*** Warning *********************************************************************************************'
353                    $str &= @CRLF & '- TEXT:' & @TAB & $PTITEL 389                    $str &= @CRLF & '- TEXT:' & @TAB & $PTITEL
354  390 
355                Case 'info' 391                Case 'info'
356                    $str = @CRLF & '*** Information *****************************************************************************************' 392                    $str = @CRLF & '*** Information *****************************************************************************************'
357                    $str &= @CRLF & '- Title:' & @TAB & $PTITEL 393                    $str &= @CRLF & '- Title:' & @TAB & $PTITEL
358                    $str &= @CRLF & '- TEXT:' & @TAB & $PTXT 394                    $str &= @CRLF & '- TEXT:' & @TAB & $PTXT
359  395 
360                Case 'SQL' 396                Case 'SQL'
361                    $str = @CRLF & '*** RAW SQL *********************************************************************************************' 397                    $str = @CRLF & '*** RAW SQL *********************************************************************************************'
362                    $str &= @CRLF & '>> ' & $PTITEL & ' <<' 398                    $str &= @CRLF & '>> ' & $PTITEL & ' <<'
363            EndSwitch 399            EndSwitch
364            ConsoleWrite($str & @CRLF) 400            ConsoleWrite($str & @CRLF)
365  401 
366            ;----------------------------------------------------------------------------------------------/ 402            ;----------------------------------------------------------------------------------------------/
367            ; SET OUTPUT 403            ; SET OUTPUT
368            ;----------------------------------------------------------------------------------------------/ 404            ;----------------------------------------------------------------------------------------------/
369        Case $action == 'set' 405        Case $action == 'set'
370            $Output = $PTITEL 406            $Output = $PTITEL
371            Return 407            Return
372    EndSelect 408    EndSelect
373  409 
374    ;----------------------------------------------------------------------------------------------/ 410    ;----------------------------------------------------------------------------------------------/
375    ; Return 411    ; Return
376    ;----------------------------------------------------------------------------------------------/ 412    ;----------------------------------------------------------------------------------------------/
377    Return 413    Return
378EndFunc   ;==>__4ern_SQL_Console 414EndFunc   ;==>__4ern_SQL_Console
379  415 
380; #FUNCTION# ==================================================================================================================== 416; #FUNCTION# ====================================================================================================================
381; Author ........: 4ern.de 417; Author ........: 4ern.de
382; Description....: Console Dubugger 418; Description....: Console Dubugger
383; =============================================================================================================================== 419; ===============================================================================================================================
384Func __4ern_SQL_Console_startUp($mode = 'Console') 420Func __4ern_SQL_Console_startUp($mode = 'Console')
385    __4ern_SQL_Console('set', $mode) 421    __4ern_SQL_Console('set', $mode)
386    Return 422    Return
387EndFunc   ;==>__4ern_SQL_Console_startUp 423EndFunc   ;==>__4ern_SQL_Console_startUp
388  424 
389; #FUNCTION# ==================================================================================================================== 425; #FUNCTION# ====================================================================================================================
390; Author ........: 4ern.de 426; Author ........: 4ern.de
391; Description....: Return Type 427; Description....: Return Type
392; ...............: Default: Object Dictionary 428; ...............: Default: Object Dictionary
393; ...............: Array 429; ...............: Array
394; =============================================================================================================================== 430; ===============================================================================================================================
395Func __4ern_SQL_defReturn($ptype = Default) 431Func __4ern_SQL_defReturn($ptype = Default)
396    Local Static $rType = 'array' 432    Local Static $rType = 'array'
397    If __4ern_SQL__IsDefault($ptype, '-1,', ',') Then Return $rType 433    If __4ern_SQL__IsDefault($ptype, '-1,', ',') Then Return $rType
398    If $ptype = 'array' Then $rType = 'array' 434    If $ptype = 'array' Then $rType = 'array'
399    If $ptype = 'oDict' Then $rType = 'oDict' 435    If $ptype = 'oDict' Then $rType = 'oDict'
400EndFunc   ;==>__4ern_SQL_defReturn 436EndFunc   ;==>__4ern_SQL_defReturn
401  437 
402;----------------------------------------------------------------------------------------------/ 438;----------------------------------------------------------------------------------------------/
403; Beschreibung: = Object Error Info 439; Beschreibung: = Object Error Info
404; @return:      = bool 440; @return:      = bool
405; von           = 4ern.de 441; von           = 4ern.de
406;----------------------------------------------------------------------------------------------/ 442;----------------------------------------------------------------------------------------------/
407Func __4ern_SQL_errFunc() 443Func __4ern_SQL_errFunc()
408    $str = StringFormat(StringReplace('! %sr\n\r\n||||||||', '|', '! %-25s%s\r\n'), _ 444    $str = "We intercepted a COM Error !" & @CRLF & @CRLF & _
409            "We intercepted a COM Error !", _ 445            "err.description is: " & @TAB & $gO__4ern_SQLError.description & @CRLF & _
410            "err.description is....:", $gO__4ern_SQLError.description, _ 446            "err.windescription:" & @TAB & $gO__4ern_SQLError.windescription & @CRLF & _
411            "err.windescription....:", $gO__4ern_SQLError.windescription, _ 447            "err.number is: " & @TAB & Hex($gO__4ern_SQLError.number, 8) & @CRLF & _
412            "err.number is.........:", Hex($gO__4ern_SQLError.number, 8), _ 448            "err.lastdllerror is: " & @TAB & $gO__4ern_SQLError.lastdllerror & @CRLF & _
413            "err.lastdllerror is...:", $gO__4ern_SQLError.lastdllerror, _ 449            "err.scriptline is: " & @TAB & $gO__4ern_SQLError.scriptline & @CRLF & _
414            "err.scriptline is.....:", $gO__4ern_SQLError.scriptline, _ 450            "err.source is: " & @TAB & $gO__4ern_SQLError.source & @CRLF & _
415            "err.source is.........:", $gO__4ern_SQLError.source, _ 451            "err.helpfile is: " & @TAB & $gO__4ern_SQLError.helpfile & @CRLF & _
416            "err.helpfile is.......:", $gO__4ern_SQLError.helpfile, _  452            "err.helpcontext is: " & @TAB & $gO__4ern_SQLError.helpcontext 
417            "err.helpcontext is....:", $gO__4ern_SQLError.helpcontext)  453      
418    
419    __4ern_SQL_Console('error', 'SQL ERROR', $str) 454    __4ern_SQL_Console('error', 'SQL ERROR', $str)
420    Return 1 455    Return 1
421EndFunc   ;==>__4ern_SQL_errFunc 456EndFunc   ;==>__4ern_SQL_errFunc
422  457 
423; #FUNCTION# ==================================================================================================================== 458; #FUNCTION# ====================================================================================================================
424; Author ........: 4ern.de 459; Author ........: 4ern.de
425; =============================================================================================================================== 460; ===============================================================================================================================
426Func __4ern_SQL_raw_getAll($oRecordSet, $oCon) 461Func __4ern_SQL_raw_getAll($oRecordSet, $oCon)
427  462 
428    ;----------------------------------------------------------------------------------------------/ 463    ;----------------------------------------------------------------------------------------------/
429    ; Return Typ 464    ; Return Typ
430    ;----------------------------------------------------------------------------------------------/ 465    ;----------------------------------------------------------------------------------------------/
431    Local Const $rType = __4ern_SQL_defReturn() 466    Local Const $rType = __4ern_SQL_defReturn()
432  467 
433    ;----------------------------------------------------------------------------------------------/ 468    ;----------------------------------------------------------------------------------------------/
434    ; Ermittle die Anzahl der Ergebniss 469    ; Ermittle die Anzahl der Ergebniss
435    ;----------------------------------------------------------------------------------------------/ 470    ;----------------------------------------------------------------------------------------------/
436  471 
437    If $oRecordSet.RecordCount = 1 Then 472    If $oRecordSet.RecordCount = 1 Then
438        Return __4ern_SQL_raw_getFirst($oRecordSet, $rType, $oCon) 473        Return __4ern_SQL_raw_getFirst($oRecordSet, $rType, $oCon)
439    EndIf 474    EndIf
440  475 
441    ;----------------------------------------------------------------------------------------------/ 476    ;----------------------------------------------------------------------------------------------/
442    ; Erstellung der Array mit Spaltnamen 477    ; Erstellung der Array mit Spaltnamen
443    ;----------------------------------------------------------------------------------------------/ 478    ;----------------------------------------------------------------------------------------------/
444   479     
445    ;----------------------------------------------------------------------------------------------/ 480    ;----------------------------------------------------------------------------------------------/
446    ; Return Typ 481    ; Return Typ
447    ;----------------------------------------------------------------------------------------------/ 482    ;----------------------------------------------------------------------------------------------/
448    Switch $rType 483    Switch $rType
449  484 
450        ;----------------------------------------------------------------------------------------------/ 485        ;----------------------------------------------------------------------------------------------/
451        ; Return als Object Dictionary 486        ; Return als Object Dictionary
452        ;----------------------------------------------------------------------------------------------/ 487        ;----------------------------------------------------------------------------------------------/
453        Case 'oDict' 488        Case 'oDict'
454  489 
455            ;----------------------------------------------------------------------------------------------/ 490            ;----------------------------------------------------------------------------------------------/
456            ; Haupt Dictionary 491            ; Haupt Dictionary
457            ;----------------------------------------------------------------------------------------------/ 492            ;----------------------------------------------------------------------------------------------/
458            Local $oDict = ObjCreate('Scripting.Dictionary') 493            Local $oDict = ObjCreate('Scripting.Dictionary')
459  494 
460            ;----------------------------------------------------------------------------------------------/ 495            ;----------------------------------------------------------------------------------------------/
461            ; Ermittle Row Key 496            ; Ermittle Row Key
462            ;----------------------------------------------------------------------------------------------/ 497            ;----------------------------------------------------------------------------------------------/
463            $oRecordSet = $oRecordSet.Clone 498            $oRecordSet = $oRecordSet.Clone
464            $rRowKey = __4ern_SQL__QueryBuilder__setTable(-1, -1, 'getTKey') 499            $rRowKey = __4ern_SQL__QueryBuilder__setTable(-1, -1, 'getTKey')
465  500 
466            ;----------------------------------------------------------------------------------------------/ 501            ;----------------------------------------------------------------------------------------------/
467            ; Anzahl der Spalte 502            ; Anzahl der Spalte
468            ;----------------------------------------------------------------------------------------------/ 503            ;----------------------------------------------------------------------------------------------/
469            $i_Colum = $oRecordSet.Fields.Count 504            $i_Colum = $oRecordSet.Fields.Count
470  505 
471            ;----------------------------------------------------------------------------------------------/ 506            ;----------------------------------------------------------------------------------------------/
472            ; Prüfe ob RowKey Colm vorhanden ist. 507            ; Prüfe ob RowKey Colm vorhanden ist.
473            ;   --> Wenn nicht vorhanden, werden Zeilennummern als RowKey genutzt 508            ;   --> Wenn nicht vorhanden, werden Zeilennummern als RowKey genutzt
474            ;----------------------------------------------------------------------------------------------/ 509            ;----------------------------------------------------------------------------------------------/
475            $bColm = False 510            $bColm = False
476            For $i = 0 To $i_Colum - 1 511            For $i = 0 To $i_Colum - 1
477                If $oRecordSet.Fields($i).Name == $rRowKey Then 512                If $oRecordSet.Fields($i).Name == $rRowKey Then
478                    $bColm = True 513                    $bColm = True
479                    ExitLoop 514                    ExitLoop
480                EndIf 515                EndIf
481            Next 516            Next
482  517 
483            ;----------------------------------------------------------------------------------------------/ 518            ;----------------------------------------------------------------------------------------------/
484            ; Erstelle die Spalten 519            ; Erstelle die Spalten
485            ;----------------------------------------------------------------------------------------------/ 520            ;----------------------------------------------------------------------------------------------/
486            For $element In $oRecordSet.Fields 521            For $element In $oRecordSet.Fields
487                $oDict.add($element.Name, ObjCreate('Scripting.Dictionary')) 522                $oDict.add($element.Name, ObjCreate('Scripting.Dictionary'))
488            Next 523            Next
489  524 
490            ;----------------------------------------------------------------------------------------------/ 525            ;----------------------------------------------------------------------------------------------/
491            ; Erstelle ein Dictionary Object 526            ; Erstelle ein Dictionary Object
492            ;----------------------------------------------------------------------------------------------/ 527            ;----------------------------------------------------------------------------------------------/
493            While Not $oRecordSet.eof 528            While Not $oRecordSet.eof
494                $rowKey = ($bColm = True) ? $oRecordSet.Fields($rRowKey).Value : $oRecordSet.AbsolutePosition 529                $rowKey = ($bColm = True) ? $oRecordSet.Fields($rRowKey).Value : $oRecordSet.AbsolutePosition
495                For $element In $oRecordSet.Fields 530                For $element In $oRecordSet.Fields
496                    $oDict($element.Name).add($rowKey, $element.Value) 531                    $oDict($element.Name).add($rowKey, $element.Value)
497                Next 532                Next
498                $oRecordSet.MoveNext 533                $oRecordSet.MoveNext
499            WEnd 534            WEnd
500            $oCon.close 535            $oCon.close
501            Return $oDict 536            Return $oDict
502  537 
503            ;----------------------------------------------------------------------------------------------/ 538            ;----------------------------------------------------------------------------------------------/
504            ; Return als Array 539            ; Return als Array
505            ;----------------------------------------------------------------------------------------------/ 540            ;----------------------------------------------------------------------------------------------/
506        Case 'array' 541        Case 'array'
507            With $oRecordSet 542            With $oRecordSet
508                Local $iFields = .Fields.Count 543                Local $iFields = .Fields.Count
509                Local $sFields[1][$iFields] 544                Local $sFields[1][$iFields]
510                For $i = 0 To $iFields - 1 545                For $i = 0 To $iFields - 1
511                    $sFields[0][$i] = .Fields($i).Name 546                    $sFields[0][$i] = .Fields($i).Name
512                Next 547                Next
513                $aValue = .GetRows() 548                $aValue = .GetRows()
514            EndWith 549            EndWith
515            _ArrayConcatenate($sFields, $aValue) 550            _ArrayConcatenate($sFields, $aValue)
516    EndSwitch 551    EndSwitch
517  552 
518    ;----------------------------------------------------------------------------------------------/ 553    ;----------------------------------------------------------------------------------------------/
519    ; Retrun Array 554    ; Retrun Array
520    ;----------------------------------------------------------------------------------------------/ 555    ;----------------------------------------------------------------------------------------------/
521    $oCon.close 556    $oCon.close
522    Return $sFields 557    Return $sFields
523EndFunc   ;==>__4ern_SQL_raw_getAll 558EndFunc   ;==>__4ern_SQL_raw_getAll
524  559 
525; #FUNCTION# ==================================================================================================================== 560; #FUNCTION# ====================================================================================================================
526; Author ........: 4ern.de 561; Author ........: 4ern.de
527; =============================================================================================================================== 562; ===============================================================================================================================
528Func __4ern_SQL_raw_getFirst($oRecordSet, $rType, $oCon) 563Func __4ern_SQL_raw_getFirst($oRecordSet, $rType, $oCon)
529   564     
530    ;----------------------------------------------------------------------------------------------/ 565    ;----------------------------------------------------------------------------------------------/
531    ; Return Typ 566    ; Return Typ
532    ;----------------------------------------------------------------------------------------------/ 567    ;----------------------------------------------------------------------------------------------/
533    Switch $rType 568    Switch $rType
534  569 
535        ;----------------------------------------------------------------------------------------------/ 570        ;----------------------------------------------------------------------------------------------/
536        ; Return als Object Dictionary 571        ; Return als Object Dictionary
537        ;----------------------------------------------------------------------------------------------/ 572        ;----------------------------------------------------------------------------------------------/
538        Case 'oDict' 573        Case 'oDict'
539            Local $oDict = ObjCreate('Scripting.Dictionary') 574            Local $oDict = ObjCreate('Scripting.Dictionary')
540            For $elemet In $oRecordSet.Fields 575            For $elemet In $oRecordSet.Fields
541                $oDict.Add($elemet.Name, $elemet.Value) 576                $oDict.Add($elemet.Name, $elemet.Value)
542            Next 577            Next
543            $oCon.close 578            $oCon.close
544            Return $oDict 579            Return $oDict
545  580 
546            ;----------------------------------------------------------------------------------------------/ 581            ;----------------------------------------------------------------------------------------------/
547            ; Return als Array 582            ; Return als Array
548            ;----------------------------------------------------------------------------------------------/ 583            ;----------------------------------------------------------------------------------------------/
549        Case 'array' 584        Case 'array'
550            Local $array[$oRecordSet.Fields.Count] 585            Local $array[$oRecordSet.Fields.Count]
551            Local $i = 0 586            Local $i = 0
552            For $row In $oRecordSet.Fields 587            For $row In $oRecordSet.Fields
553                $array[$i] = $row.Value 588                $array[$i] = $row.Value
554                $i += 1 589                $i += 1
555            Next 590            Next
556            $oCon.close 591            $oCon.close
557            Return $array 592            Return $array
558  593 
559    EndSwitch 594    EndSwitch
560EndFunc   ;==>__4ern_SQL_raw_getFirst 595EndFunc   ;==>__4ern_SQL_raw_getFirst
561  596 
562; #FUNCTION# ==================================================================================================================== 597; #FUNCTION# ====================================================================================================================
563; Author ........: 4ern.de 598; Author ........: 4ern.de
564; Description....: ADO SQL Execute 599; Description....: ADO SQL Execute
565; =============================================================================================================================== 600; ===============================================================================================================================
566Func __4ern_SQL_rawQuery($pQuery = Default, $action = Default) 601Func __4ern_SQL_rawQuery($pQuery = Default, $action = Default)
567  602 
568    ;----------------------------------------------------------------------------------------------/ 603    ;----------------------------------------------------------------------------------------------/
569    ; Local Statics 604    ; Local Statics
570    ;----------------------------------------------------------------------------------------------/ 605    ;----------------------------------------------------------------------------------------------/
571    Local $oRecordSet, $error 606    Local $oRecordSet, $error
572  607 
573    ;----------------------------------------------------------------------------------------------/ 608    ;----------------------------------------------------------------------------------------------/
574    ; DEFAULT 609    ; DEFAULT
575    ;----------------------------------------------------------------------------------------------/ 610    ;----------------------------------------------------------------------------------------------/
576    If ($action = Default) Or ($action = -1) Or ($action = '') Then $action = 'get()' 611    If ($action = Default) Or ($action = -1) Or ($action = '') Then $action = 'get()'
577  612 
578    ;----------------------------------------------------------------------------------------------/ 613    ;----------------------------------------------------------------------------------------------/
579    ; Erstelle eine Verbindung zur DB 614    ; Erstelle eine Verbindung zur DB
580    ;----------------------------------------------------------------------------------------------/ 615    ;----------------------------------------------------------------------------------------------/
581    If $action == 'get()' Then 616    If $action == 'get()' Then
582        $oCon = __4ern_SQL_Connect() 617        $oCon = __4ern_SQL_Connect()
583    Else 618    Else
584        $oCon = __4ern_SQL_Connect(Default, Default, Default, Default, Default, 'write()') 619        $oCon = __4ern_SQL_Connect(Default, Default, Default, Default, Default, 'write()')
585    EndIf 620    EndIf
586   621     
587    If @error Or IsObj($oCon) = 0 Then Return SetError(@error, '', $oCon) 622    If @error Or IsObj($oCon) = 0 Then Return SetError(@error, '', $oCon)
588  623 
589    ;----------------------------------------------------------------------------------------------/ 624    ;----------------------------------------------------------------------------------------------/
590    ; FastEscape 625    ; FastEscape
591    ;----------------------------------------------------------------------------------------------/ 626    ;----------------------------------------------------------------------------------------------/
592    $pQuery = StringReplace($pQuery, '"', "'") 627    $pQuery = StringReplace($pQuery, '"', "'")
593    $pQuery = StringReplace($pQuery, '`', '"') 628    $pQuery = StringReplace($pQuery, '`', '"')
594    __4ern_SQL_Console('SQL', $pQuery) 629    __4ern_SQL_Console('SQL', $pQuery)
595  630 
596    ;----------------------------------------------------------------------------------------------/ 631    ;----------------------------------------------------------------------------------------------/
597    ; Führe Query aus 632    ; Führe Query aus
598    ;----------------------------------------------------------------------------------------------/ 633    ;----------------------------------------------------------------------------------------------/
599    $oRecordSet = $oCon.Execute($pQuery) 634    $oRecordSet = $oCon.Execute($pQuery)
600    If @error Then 635    If @error Then
601        $error = '4ern SQL Error -- Query konnte nicht ausgefuehrt werden.' 636        $error = '4ern SQL Error -- Query konnte nicht ausgefuehrt werden.'
602        __4ern_SQL_Console('error', '$oCon.Execute($pQuery)', 'Query konnte nicht ausgefuehrt werden.') 637        __4ern_SQL_Console('error', '$oCon.Execute($pQuery)', 'Query konnte nicht ausgefuehrt werden.')
603        $oCon.close 638        $oCon.close
604        Return SetError(@error, '', $oRecordSet) 639        Return SetError(@error, '', $oRecordSet)
605    EndIf 640    EndIf
606  641 
607    ;----------------------------------------------------------------------------------------------/ 642    ;----------------------------------------------------------------------------------------------/
608    ; Prüfe ob Query Daten enthält 643    ; Prüfe ob Query Daten enthält
609    ;----------------------------------------------------------------------------------------------/ 644    ;----------------------------------------------------------------------------------------------/
610    If $action == 'get()' Then 645    If $action == 'get()' Then
611        If $oRecordSet.eof Then 646        If $oRecordSet.eof Then
612            __4ern_SQL_Console('warning', '$oRecordSet.eof Query enthält keine Daten') 647            __4ern_SQL_Console('warning', '$oRecordSet.eof Query enthält keine Daten')
613            $oCon.close 648            $oCon.close
614            Return SetError(1, '', 0) 649            Return SetError(1, '', 0)
615        EndIf 650        EndIf
616    EndIf 651    EndIf
617  652 
618    ;----------------------------------------------------------------------------------------------/ 653    ;----------------------------------------------------------------------------------------------/
619    ; Return Switch 654    ; Return Switch
620    ;----------------------------------------------------------------------------------------------/ 655    ;----------------------------------------------------------------------------------------------/
621    Switch $action 656    Switch $action
622  657 
623        ;----------------------------------------------------------------------------------------------/ 658        ;----------------------------------------------------------------------------------------------/
624        ; Übergibt alle Werte 659        ; Übergibt alle Werte
625        ;----------------------------------------------------------------------------------------------/ 660        ;----------------------------------------------------------------------------------------------/
626        Case StringInStr($action, 'get()') <> 0 661        Case StringInStr($action, 'get()') <> 0
627            Return __4ern_SQL_raw_getAll($oRecordSet, $oCon) 662            Return __4ern_SQL_raw_getAll($oRecordSet, $oCon)
628  663 
629        Case StringInStr($action, 'update()') <> 0 664        Case StringInStr($action, 'update()') <> 0
630            Return 1 665            Return 1
631    EndSwitch 666    EndSwitch
632EndFunc   ;==>__4ern_SQL_rawQuery 667EndFunc   ;==>__4ern_SQL_rawQuery
633  668