SQLite - Datenbankinhalte aufbereiten und in einem dynamischen Listview darstellen. ![]()
Spoiler anzeigen
#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
;~ #AutoIt3Wrapper_UseX64=n ; ### Win32-DLL ###
#include <SQLite.au3>
#include <SQLite.dll.au3>
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!")
;~ ### Die Tabelle "BeispielDB" erstellen. ###
_SQLite_Exec(-1, "CREATE TABLE BeispielDB (ID INTEGER PRIMARY KEY, Name Text, Vorname Text, Summe Real);")
;~ ### 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);")
;~ ### Beispiel-Abfragen formulieren. ###
;i Rowid und ID sind nicht das Gleiche!
;~ _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)
$listviewText = ""
For $iC = 0 To $iColumns - 1
$listviewText &= $aResult[0][$iC] & "|"
;~ MsgBox(0, "", $listviewText)
Next
;~ MsgBox(0, "", $listviewText)
GUICreate("SQLite-Listview", 400, 400)
$listview = GUICtrlCreateListView($listviewText, 0, 0, 400, 300)
GUISetState(@SW_SHOW)
For $iR = 1 To $iRows
$listviewID = ""
For $iC = 0 To $iColumns - 1
$listviewID &= $aResult[$iR][$iC] & "|"
;~ MsgBox(0,"",$listviewID)
Next
GUICtrlCreateListViewItem($listviewID, $listview)
Next
_SQLite_Exec(-1, "DROP TABLE BeispielDB;")
_SQLite_Close()
_SQLite_Shutdown()
While GUIGetMsg() <> -3
WEnd
; Ende