_SQLite_helper.au3

  • Hallo zusammen,

    da ich beruflich viel mit SQLite Datenbanken in Verbindung mit AutoIt arbeite, habe ich eine kleine Funktions-Sammlung hierfür geschrieben.

    Natürlich bin ich nicht Geizig und teile diese mit euch.

    Zwar unterstützt AutotIt bereits SQLite, jedoch empfand ich es Mühsam Unmengen an Code-Zeilen für eine einfache SQL Abfrage zu schreiben.

    Bei meiner Funktionssammlung (UDF) war es mir wichtig, dass ich mich zum größten Teil auf den SQL Syntax konzentrieren kann und der Rest von AutoIt selbstständig erledigt wird, natürlich mit entsprechendem Fehler Handling.

    Funktions Liste:

    • SQL_Init
    • SQL_defaults
    • SQL_Get
    • SQL_Set
    • SQL_Info
    • SQL_Flag

    nächste Funktionen

    • sql_create()


    Da die komplette Dokumentation hier den Rahmen sprengen würde, hier der Link zu GitHub Readme.

    EDIT:
    _SQLite_helper.au3

    Spoiler anzeigen
    [autoit]


    #include-once
    #include <File.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Regestrierung SQL Funktions
    ;----------------------------------------------------------------------------------------------/
    Global Const $sql_init = __mSQlite_Initialisieren
    Global Const $sql_get = __mSQlite_getQuerry
    Global Const $sql_set = __mSQlite_setQuerry
    Global Const $sql_info = __mSqlite_Information
    Global Const $sql_flag = __mSqlite_getSetFlag
    Global Const $sql_defaults = __mSqlite_defaults
    Global Const $sql_count = __mSqlite_count

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Initialisiere Constructor
    ;
    ; Update = 20.02.2015
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __mSQlite_Initialisieren($param1 = 0, $param2 = False)
    __m_SQLite_Constructor('create',$param1,$param2)
    endfunc ;<==/newFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Stellt / Schließt / übergibt die Verbindungn zur Datenbank
    ;
    ; Info = Siehe Dokumentation
    ; https://github.com/4ern/AutoIt-SQ…aster/README.md
    ;
    ; Update = 30.10.2014
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __m_SQLite_Constructor($action = '',$paramDatabase = 1, $pfDll = False)

    [/autoit] [autoit][/autoit] [autoit]

    Local Static $Start = False
    Local Static $dbStartup = False
    Local Static $pf_sqLiteDll
    Local Static $pf_database
    Local Static $oConnection

    [/autoit] [autoit][/autoit] [autoit]

    Switch $action
    Case 'pf_sqLiteDll'
    return $pf_sqLiteDll
    Case 'pf_database'
    return $pf_database
    EndSwitch

    ;----------------------------------------------------------------------------------------------/
    ; Falls keine Datenbank übergeben wurde dan versuche eine im Scriptdir zu finden.
    ;----------------------------------------------------------------------------------------------/
    if $pf_database = '' then
    Switch $paramDatabase

    [/autoit] [autoit][/autoit] [autoit]

    ;Wenn Datebase Pfad initialisiert wurde
    Case StringInStr($paramDatabase, '.s3db') <> 0
    $pf_database = $paramDatabase

    [/autoit] [autoit][/autoit] [autoit]

    ;Wenn nichts mitgegeben wurde, wird versucht im ScriptDir nach DB zu suchen
    Case 1
    $FileList = _FileListToArray(@scriptdir,'*s3db',1)
    If IsArray($FileList) and UBound($FileList) >= 2 Then
    $pf_database = @scriptdir&'\'&$FileList[1]
    Else
    ContinueCase
    endif

    [/autoit] [autoit][/autoit] [autoit]

    ;DB wird im Arbeitsspeicher angelegt.
    Case 2
    $pf_database = ':memory:'
    ConsoleWrite('<-- Datenbank wurde im Arbeitsspeicher erstellt'&@crlf)
    EndSwitch
    endif

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Erstelle Connection
    ;----------------------------------------------------------------------------------------------/
    Switch $action
    Case 'get'
    if IsHWnd($oConnection) = 0 then
    ContinueCase
    endif
    return $oConnection

    [/autoit] [autoit][/autoit] [autoit]

    Case 'create'
    if $dbStartup = False then
    _SQLite_Startup($pf_sqLiteDll)
    If @error Then return SetError(1,'','SQLite3.dll kann nicht geladen werden!')
    $dbStartup = True
    endif

    [/autoit] [autoit][/autoit] [autoit]

    $oConnection = _SQLite_Open($pf_database)
    If @error Then return SetError(1,'','Kann keine Datenbank im Speicher erstellen!')
    return $oConnection

    Case 'close'
    _SQLite_Shutdown()
    EndSwitch
    endfunc

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Get Verweis auf __m_SQLite_query
    ;
    ; Update = 20.02.2015
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __mSQlite_getQuerry($param)
    $ret = __m_SQLite_query($param,'get')
    return SetError(@error, '', $ret)
    endfunc ;<==/newFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Set Verweis auf __m_SQLite_query
    ;
    ; Update = 20.02.2015
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __mSQlite_setQuerry($param)
    $ret = __m_SQLite_query($param,'set')
    return SetError(@error, '', $ret)
    endfunc ;<==/newFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Ermittelt / Schreibt / Ändert oder löscht Daten in der Datenbank
    ;
    ; Info = Siehe Dokumentation
    ; https://github.com/4ern/AutoIt-SQ…aster/README.md
    ;
    ; Update = 30.10.2014
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __m_SQLite_query($query, $action = 'get')

    [/autoit] [autoit][/autoit] [autoit]

    Local $ergebnis, $zeile, $spalten
    Local $timestamp_format = 0

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Umlaut Catcher!
    ;----------------------------------------------------------------------------------------------/
    Local Static $aUmlaute [][] = [ _
    ['Umlaut', 'Ubersetzung'], _
    ['Ä','Ae'], _
    ['Ö','Oe'], _
    ['Ü','Ue'], _
    ['ä','ae'], _
    ['ö','oe'], _
    ['ü','ue'], _
    ['ß','?s'] _
    ]

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Hollt das DB Handel
    ;----------------------------------------------------------------------------------------------/
    $oDatabase = __m_SQLite_Constructor('get')

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; GET or SET Methoden
    ;----------------------------------------------------------------------------------------------/
    switch $action
    Case 'get'

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; magic Datum
    ;----------------------------------------------------------------------------------------------/
    $aRegEx = StringRegExp($query, '\{(where*::.*)\}',3)
    if isarray($aRegEx) <> 0 then
    $replace = '{'&$aRegEx[0]&'}'
    $aSplit = StringSplit((StringSplit($aRegEx[0], '::',2))[2], '->', 2)
    $adate = StringSplit($aSplit[2],'.',2)
    $sdate = $adate[2]&'-'&$adate[1]&'-'&$adate[0]
    $string = 'where '&$aSplit[0]&' >= date("'&$sdate&'") ORDER BY '&$aSplit[0]&' ASC Limit 1'
    $query = StringReplace($query, $replace, $string)
    endif

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Magic Date Converter
    ;----------------------------------------------------------------------------------------------/

    $aRegEx = StringRegExp($query, '\{(\w*::.*)\}',3)
    for $i = 0 to Ubound($aRegEx) -1

    $replace = '{'&$aRegEx[$i]&'}'
    $aSplit = StringSplit($aRegEx[$i], '::',1)
    $newRow = $aSplit[1]

    if StringInStr($aRegEx[$i], '->') <> 0 then
    $newRow = StringStripWS((StringSplit($aSplit[2], '->',1)[2]), 3)
    $aSplit[2] = StringReplace($aSplit[2], '->', '',1)
    $aSplit[2] = StringReplace($aSplit[2], $newRow, '',1)
    $aSplit[2] = StringStripWS($aSplit[2], 3)
    endif

    [/autoit] [autoit][/autoit] [autoit]

    $spalte = $aSplit[1]
    $date = $aSplit[2]

    [/autoit] [autoit][/autoit] [autoit]

    $date = StringReplace($date, 'dd', '%d.',1,1)
    $date = StringReplace($date, 'mm', '%m',1,1)
    $date = StringReplace($date, 'yyyy', ' %Y ',1,1)
    $date = StringReplace($date, 'HH', '%H',1,1)
    $date = StringReplace($date, 'MM', '%M',1,1)
    $date = StringReplace($date, 'SS.SSS', '%f',1,1)
    $date = StringReplace($date, 'SS', '%S',1,1)
    $string = 'strftime("'&$date&'",'&$spalte&') as '&$newRow
    $query = StringReplace($query, $replace, $string)
    next

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Setze Umlaute
    ;----------------------------------------------------------------------------------------------/
    for $i = 1 to Ubound($aUmlaute) -1
    $query = StringReplace($query, $aUmlaute[$i][0], $aUmlaute[$i][1],0,1)
    next

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Führe SQL aus
    ;----------------------------------------------------------------------------------------------/
    _SQLite_GetTable2d($oDatabase, $query, $ergebnis, $zeile, $spalten)
    $err = @error
    _SQLite_Close($oDatabase)

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Setze Umlaute
    ;----------------------------------------------------------------------------------------------/
    for $i = 1 to Ubound($aUmlaute) -1
    for $ii = 0 to Ubound($ergebnis) -1
    for $iii = 0 to Ubound($ergebnis,2) -1
    $ergebnis[$ii][$iii] = StringReplace($ergebnis[$ii][$iii], $aUmlaute[$i][1], $aUmlaute[$i][0],0,1)
    next
    next
    next

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Gebe Datum im deutschen Format aus.
    ;----------------------------------------------------------------------------------------------/
    for $i = 0 to Ubound($ergebnis) -1
    for $ii = 0 to Ubound($ergebnis,2) -1
    $aRegEx = StringRegExp($ergebnis[$i][$ii], '(?:199[0-9]|20[0-9][0-9])-(?:0[1-9]|1[0-2])-(?:[0-2][0-9]|3[0-1])',3)
    if IsArray($aRegEx) = 0 then ContinueLoop
    $aString = StringSplit($aRegEx[0], '-',2)
    $ergebnis[$i][$ii] = StringReplace($ergebnis[$i][$ii], $aRegEx[0], $aString[2]&'.'&$aString[1]&'.'&$aString[0])
    next
    next

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Return
    ;----------------------------------------------------------------------------------------------/
    return SetError($err, '', $ergebnis)

    Case 'set'

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Timstamp Magic Function
    ;----------------------------------------------------------------------------------------------/
    $timestamp = @year&'-'&@mon&'-'&@mday&'T'&@hour&':'&@min&':'&@sec&'.'&@MSEC
    $query = StringReplace($query, '{timestamp}', $timestamp)

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Date Magic Function
    ;----------------------------------------------------------------------------------------------/
    $aRegEx = StringRegExp($query, '\{(.*?)\}',3)
    for $i = 0 to Ubound($aRegEx) -1
    $replace = '{'&$aRegEx[$i]&'}'

    [/autoit] [autoit][/autoit] [autoit]

    if StringRegExp($aRegEx[$i], '^([0-3]\d|[1-9])\.([0-3]\d|[1-9])\.(\d{4}|\d{2})$') = 0 then ContinueLoop
    $aSplit = StringSplit($aRegEx[$i], '.',2)

    [/autoit] [autoit][/autoit] [autoit]

    $string = $aSplit[2] &'-'& $aSplit[1] &'-'& $aSplit[0]
    $query = StringReplace($query, $replace, $string)
    next

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Setze Umlaute
    ;----------------------------------------------------------------------------------------------/
    for $i = 1 to Ubound($aUmlaute) -1
    $query = StringReplace($query, $aUmlaute[$i][0], $aUmlaute[$i][1], 0, 1)
    next

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Führe SQL aus
    ;----------------------------------------------------------------------------------------------/
    $ret = _SQLite_Exec($oDatabase,$query)
    $err = @error
    _SQLite_Close($oDatabase)

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Return
    ;----------------------------------------------------------------------------------------------/
    return SetError($err, '', $ret)
    Endswitch
    endfunc ;<==/m_database_query

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Zeigt Informationen aus der SQLite DB an
    ;
    ; Info = Siehe Dokumentation
    ; https://github.com/4ern/AutoIt-SQ…aster/README.md
    ;
    ; Update = 23.02.2015
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __mSqlite_Information($display = 'console')

    Local $oDatabase = __m_SQLite_Constructor()
    Local $sql_version = _SQLite_LibVersion()
    Local $changes_without_trigger = _SQLite_Changes($oDatabase)
    Local $changes_with_trigger = _SQLite_TotalChanges($oDatabase)
    Local $last_error_Code = _SQLite_ErrCode($oDatabase)
    Local $last_error_msg = _SQLite_ErrMsg($oDatabase)
    Local $pfad_DB = __m_SQLite_Constructor('pf_database')
    Local $pfad_dll = __m_SQLite_Constructor('pf_sqLiteDll')

    Switch $display
    Case 'array'
    Local $array[][] = [ _
    ['Version',$sql_version], _
    ['Veränderungen ohne Trigger',$changes_without_trigger], _
    ['Veränderungen mit Trigger',$changes_with_trigger], _
    ['Letzter Fehler-Code',$last_error_Code], _
    ['Fehler Nachricht',$last_error_msg], _
    ['Verzeichnis Datenbank',$pfad_DB], _
    ['Verzeichnis SQLite3.dll',$pfad_dll] _
    ]
    _ArrayDisplay($array)
    Case 'console'
    ConsoleWrite( _
    '<--- SQLite Information !!!!' & _
    'SQLite Version: ' & $sql_version & @crlf & @crlf & _
    'Veränderungen ohne Trigger: '& $changes_without_trigger & @crlf & _
    'Veränderungen mit Trigger: '& $changes_with_trigger & @crlf & @crlf & _
    'Letzter Fehler-Code:' & $last_error_Code & @crlf & _
    'Fehler Nachricht: ' &$last_error_msg & @crlf & @crlf & _
    'Verzeichnis Datenbank: ' &$pfad_DB & @crlf & _
    'Verzeichnis SQLite3.dll: ' &$pfad_dll & @crlf & _
    '!!! SQLite Information --->')
    Case 'msg'
    MsgBox(48, 'SQLite Information', _
    'SQLite Version: ' & $sql_version & @crlf & @crlf & _
    'Veränderungen ohne Trigger: '& $changes_without_trigger & @crlf & _
    'Veränderungen mit Trigger: '& $changes_with_trigger & @crlf & @crlf & _
    'Letzter Fehler-Code: ' & $last_error_Code & @crlf & _
    'Fehler Nachricht: ' &$last_error_msg & @crlf & @crlf & _
    'Verzeichnis Datenbank: ' &$pfad_DB & @crlf & _
    'Verzeichnis SQLite3.dll: ' &$pfad_dll & @crlf)
    EndSwitch
    endfunc ;<==/_mSqlite_Information

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Setzt ein Flag in die Tabelle und übermittelt die geflaggten Daten
    ;
    ; Info = Siehe Dokumentation
    ; https://github.com/4ern/AutoIt-SQ…aster/README.md
    ;
    ; Update = 23.02.2015
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __mSqlite_getSetFlag($table = '' ,$such_Wert = '', $flag_spalte = '', $flag_wert = '')

    if $table = '' then $table = __mSqlite_defaults('tabelle')
    if $such_Wert = '' then $such_Wert = __mSqlite_defaults('suchewert')
    if $flag_spalte = '' then $flag_spalte = __mSqlite_defaults('flag_spalte')
    if $flag_wert = '' then $flag_wert = __mSqlite_defaults('flag_wert')

    [/autoit] [autoit][/autoit] [autoit]

    ;gesetzten Flag lesen
    $sql = 'SELECT * FROM '&$table&' where '&$flag_spalte&' = "'&$flag_wert&'" LIMIT 1;'
    $ret = __m_SQLite_query($sql,'get')
    If IsArray($ret) = 1 and UBound($ret) >= 2 Then
    return SetError(@error, '', $ret)
    endif

    [/autoit] [autoit][/autoit] [autoit]

    ;Flag setzen
    $sql = 'UPDATE '&$table&' SET '&$flag_spalte&' ="'&$flag_wert&'" WHERE id in (SELECT id FROM '&$table&' WHERE '&$flag_spalte&' = "'&$such_Wert&'" LIMIT 1);'
    $ret = __m_SQLite_query($sql,'set')
    if @error then return SetError(@error, '', $ret)

    [/autoit] [autoit][/autoit] [autoit]

    ;gesetzten Flag lesen
    $sql = 'SELECT * FROM '&$table&' where '&$flag_spalte&' = "'&$flag_wert&'" LIMIT 1;'
    $ret = __m_SQLite_query($sql,'get')
    If IsArray($ret) = 1 and UBound($ret) >= 2 Then
    return SetError(@error, '', $ret)
    Else
    ConsoleWrite('<--- Suchwert: "'&$such_Wert&'" konnte in der Tabelle: "'&$table&'" und Spalte: "'&$flag_spalte&'" nicht ermittelt werden' & @crlf)
    return SetError(1, '', '0')
    endif
    endfunc ;<==/_mSqlite_getSetFlag

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = SQLite Defaults
    ;
    ; Info = Siehe Dokumentation
    ; https://github.com/4ern/AutoIt-SQ…aster/README.md
    ;
    ; Update = 25.02.2015
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __mSqlite_defaults($_strVarName, $_value='', $_action='get')

    [/autoit] [autoit][/autoit] [autoit]

    Local Static $oDict = ObjCreate('Scripting.Dictionary')
    Local Static $1stStart = 0

    [/autoit] [autoit][/autoit] [autoit]

    If $1stStart = 0 Then
    $oDict.Add('tabelle', 'data') ;Standard Tabelle
    $oDict.Add('spalte', 'state') ;Standard Spalte
    $oDict.Add('suchewert', 'open') ;Nach Welchen Wert soll die Spalte durch sucht werden
    $oDict.Add('flag_spalte', 'flag') ;Spalte in welche der Flag eingetragen werden soll
    $oDict.Add('flag_wert', @computername) ;Wert welcher in die Flag Spalte geschrieben wird
    $1stStart = 1
    EndIf

    Switch $_action
    Case 'get'
    If $oDict.Exists($_strVarName) Then
    Return $oDict.Item($_strVarName)
    Else
    Return SetError(1,0,'')
    EndIf
    Case 'set'
    If Not $oDict.Exists($_strVarName) Then
    $oDict.Add($_strVarName, $_value)
    Else
    $oDict.Item($_strVarName) = $_value
    EndIf
    case 'display'
    $anzahl = $oDict.Count +1
    Local $array[$anzahl][2]
    $colKeys = $oDict.Keys
    $i = 0
    For $strKey in $colKeys
    $array[$i][0] = $strKey
    $array[$i][1] = $oDict.Item($strKey)
    $i += 1
    Next
    _ArrayDisplay($array)
    EndSwitch
    endfunc ;<==/getSet_Salcus_Vars

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------/
    ; Beschreibung: = Zählt die Zeilen anhand der übergeben Parameter
    ;
    ; Info = Siehe Dokumentation
    ; https://github.com/4ern/AutoIt-SQ…aster/README.md
    ;
    ; Update = 25.02.2015
    ; von = 4ern.de
    ;----------------------------------------------------------------------------------------------/
    func __mSqlite_count($table = '', $spalte = '', $such_Wert = '')

    if $table = '' then $table = __mSqlite_defaults('tabelle')
    if $spalte = '' then $spalte = __mSqlite_defaults('spalte')
    if $such_Wert = '' then $such_Wert = __mSqlite_defaults('suchewert')

    ;gesetzten Flag lesen
    if $spalte = '' then
    $sql = 'SELECT count('*') FROM '&$table&';'
    Else
    $sql = 'SELECT count(*) FROM '&$table&' WHERE '&$spalte&' = "'&$such_Wert&'";'
    endif

    [/autoit] [autoit][/autoit] [autoit]

    $ret = __m_SQLite_query($sql,'get')
    If IsArray($ret) = 1 and UBound($ret) >= 2 Then
    return SetError(@error, '', $ret[1][0])
    Else
    ConsoleWrite('<--- Suchwert: "'&$such_Wert&'" konnte in der Tabelle: "'&$table&'" und Spalte: "'&$spalte&'" nicht ermittelt werden' & @crlf)
    return SetError(1, '', '0')
    endif
    endfunc ;<==/_mSqlite_count

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Beispiel ohne _SQLite_helper.au3

    [autoit]


    #include <SQLite.au3>
    #include <SQLite.dll.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $aResult, $iRows, $iColumns, $iRval

    [/autoit][autoit][/autoit][autoit]

    _SQLite_Startup()
    If @error Then
    MsgBox(16, "SQLite Fehler", "SQLite.dll kann nicht geladen werden!")
    Exit -1
    EndIf

    [/autoit][autoit][/autoit][autoit]

    _SQLite_Open()
    If @error Then
    MsgBox(16, "SQLite Fehler", "Kann die Datenbank nicht öffnen!")
    Exit -1
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $iRval = _SQLite_GetTable2d(-1, "SELECT * FROM persons;", $aResult, $iRows, $iColumns)
    If $iRval = $SQLITE_OK Then
    _SQLite_Display2DResult($aResult) ; Anzeige des Ergebnisses in der Konsole
    Else
    MsgBox(16, "SQLite Fehler: " & $iRval, _SQLite_ErrMsg())
    EndIf

    [/autoit][autoit][/autoit][autoit]

    _SQLite_Close()
    _SQLite_Shutdown()

    [/autoit]

    Beispiel mit _SQLite_helper.au3

    [autoit]


    #include "_SQLite_helper.au3"

    [/autoit][autoit][/autoit][autoit]

    $aResult = $sql_get('SELECT * FROM persons;')
    if @error then
    consolewrite('SQLite Fehler: ' & $aResult &' // '&_SQLite_ErrMsg())
    endif

    [/autoit]

    Diese UDF ist nicht perfekt und lebt von eurem Feedback. Ich freue mich sehr auf eure Ideen und Verbesserungsvorschläge!

    Die Datei kann man hier runterladen.
    Die komplette Dokumentation und UDF findet Ihr auch auf meinem GitHub Konto.

  • In der *.au3-Datei sind es keine Umlaute, sondern Sonderzeichen (falscher Zeichensatz?)

    Ich hab jetzt überall die Sonderzeichen durch Umlaute ersetzt, also nichts spektakuläres. Lad die Datei mal selbst runter und schau Dir den Inhalt bezüglich der Sonderzeichen an.

    • Offizieller Beitrag

    falscher Zeichensatz?


    Wenn in einem UTF8-Editor Umlaute geschrieben werden ( rynow nutzt SublimeText mit UTF8 ) wirst du in SciTE das falsch dargestellt bekommen.
    Obwohl SciTE problemlos UTF8 kann und damit 99% aller Darstellungen abgedeckt wären, hat Jos das nicht als Standard implementiert. Und somit hat man extreme Probleme, wenn man in SciTE erstellte Skripte in UTF8-Editoren öffnet und umgekehrt.