SQLite-Listview

  • SQLite - Datenbankinhalte aufbereiten und in einem dynamischen Listview darstellen. ;)

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    ;~ #AutoIt3Wrapper_UseX64=n ; ### Win32-DLL ###

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

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

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

    Global $listview, $aResult, $iRows, $iColumns, $listviewID, $listviewText

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

    _SQLite_Startup()
    If @error Then Exit MsgBox(16, "SQLite Fehler", "SQLite.dll konnte nicht geladen werden!")
    _SQLite_Open()
    If @error Then Exit MsgBox(16, "SQLite Fehler", "Kann die Datenbank nicht öffnen!")

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

    ;~ ### Die Tabelle "BeispielDB" erstellen. ###
    _SQLite_Exec(-1, "CREATE TABLE BeispielDB (ID INTEGER PRIMARY KEY, Name Text, Vorname Text, Summe Real);")

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

    ;~ ### Mustereingaben vornehmen ###
    _SQLite_Exec(-1, "INSERT INTO BeispielDB(Name,Vorname,Summe) VALUES ('Muster','Max',1000);")
    _SQLite_Exec(-1, "INSERT INTO BeispielDB(Name,Vorname,Summe) VALUES ('Duck','Donald',130.05);")
    _SQLite_Exec(-1, "INSERT INTO BeispielDB(Name,Vorname,Summe) VALUES ('Duck','Daisy',400.55);")
    _SQLite_Exec(-1, "INSERT INTO BeispielDB(Name,Vorname,Summe) VALUES ('Bond','James',100.95);")
    _SQLite_Exec(-1, "INSERT INTO BeispielDB(Name,Vorname,Summe) VALUES ('Muster','Max',500);")
    _SQLite_Exec(-1, "INSERT INTO BeispielDB(Name,Vorname,Summe) VALUES ('Duck','Dagobert',10030.52);")
    _SQLite_Exec(-1, "INSERT INTO BeispielDB(Name,Vorname,Summe) VALUES ('Muster','Max',500);")

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

    ;~ ### Beispiel-Abfragen formulieren. ###
    ;i Rowid und ID sind nicht das Gleiche!

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

    ;~ _SQLite_GetTable2d(-1, "Select rowid,* From BeispielDB", $aResult, $iRows, $iColumns)
    ;~ _SQLite_GetTable2d(-1, "Select Vorname,Name,Summe From BeispielDB", $aResult, $iRows, $iColumns)
    _SQLite_GetTable2d(-1, "Select * From BeispielDB", $aResult, $iRows, $iColumns)
    ;~ _SQLite_GetTable2d(-1, "Select * From BeispielDB WHERE name LIKE 'm%'", $aResult, $iRows, $iColumns)
    ;~ _SQLite_GetTable2d(-1, "SELECT vorname,name,SUM(Summe) AS Gesamt FROM BeispielDB WHERE name LIKE 'd%'", $aResult, $iRows, $iColumns)
    ;~ _SQLite_GetTable2d(-1, "SELECT name,SUM(Summe) AS Gesamt FROM BeispielDB WHERE name LIKE 'd%'", $aResult, $iRows, $iColumns)
    ;~ _SQLite_GetTable2d(-1, "SELECT COUNT(name) AS Anzahl_Eintraege FROM BeispielDB", $aResult, $iRows, $iColumns)
    ;~ _SQLite_GetTable2d(-1, "SELECT Name, SUM(Summe) AS Gesamt FROM BeispielDB GROUP BY Name", $aResult, $iRows, $iColumns)

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

    $listviewText = ""
    For $iC = 0 To $iColumns - 1
    $listviewText &= $aResult[0][$iC] & "|"
    ;~ MsgBox(0, "", $listviewText)
    Next
    ;~ MsgBox(0, "", $listviewText)

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

    GUICreate("SQLite-Listview", 400, 400)
    $listview = GUICtrlCreateListView($listviewText, 0, 0, 400, 300)
    GUISetState(@SW_SHOW)

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

    For $iR = 1 To $iRows
    $listviewID = ""
    For $iC = 0 To $iColumns - 1
    $listviewID &= $aResult[$iR][$iC] & "|"
    ;~ MsgBox(0,"",$listviewID)
    Next
    GUICtrlCreateListViewItem($listviewID, $listview)
    Next

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

    _SQLite_Exec(-1, "DROP TABLE BeispielDB;")
    _SQLite_Close()
    _SQLite_Shutdown()

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

    While GUIGetMsg() <> -3
    WEnd
    ; Ende

    [/autoit]