Der Einstieg in das Thema SQLite und die Anwendung in AutoIt.
Will man eine Datenbank installieren. Dann hat man schnell das Gefühl, es wird ein ganzes Betriebssystem installiert,
das auch noch die Performance des Systems beeinflusst.
Bei SQLite ist das nicht der Fall, denn SQLite arbeitet auf Dateibasis. Aber auch hier spricht man SQL. Die Standards von 1992 werden unterstützt und man hat das Handling einer relationalen Datenbank. Heute befinden sich SQLite-Datenbanken bereits in Internetbrowsern und Handys, so gehört SQLite auch zum "Lieferumfang" von AutoIt.
Dieses Tutorial soll in zweifacher Hinsicht als Einstieg in SQLite dienen.
Das Skript zeigt einen möglichen Aufbau sowie die datenbankrelevanten Funktionen. Diese sind mit dem Vorzeichen "Ds"
für Datensatz gekennzeichnet.
Mit dem Programm hingegen ist man in der Lage eine kleine Beispieldatenbank, wie in einer Sandbox, zu führen. Es wird
sichtbar welche Befehle hinter den einzelnen Button stecken und was sie bewirken. Nicht alle Befehle lösen eine
Aktion aus, die sichtbar wird. Auch fehlende oder falsche Eingaben sind möglich.
Seht selbst, wie SQLite reagiert.
SQL
-- Die Tabelle "BeispielDB" erstellen --
-- Telefonnr. als "Text",
-- nur bei Zahlen mit denen nicht gerechnet
-- werden soll (PLZ, Hausnr., Telefonnr.).
CREATE TABLE BeispielDB
(
ID INTEGER PRIMARY KEY,
Name Text,
Vorname Text,
Telefon Text
);
-- Auswahl-Abfragen --
-- Alle auswählen aus der Tabelle "BeginnerDB" ... --
-- ... mit "name" "Meier"
SELECT * FROM BeginnerDB
WHERE name
LIKE 'Meier'
-- ... mit "name" ein "m%" als Anfangsbuchstabe
SELECT * FROM BeginnerDB
WHERE name
LIKE 'm%'
-- ... mit "name" ein "%m%" innerhalb des Namens
SELECT * FROM BeginnerDB
WHERE name
LIKE '%m%'
-- Ende
Alles anzeigen
SQLite-BeginnerDB
;~ Autor: Ritzelrocker04
#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 <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
#include <WindowsConstants.au3>
;
Opt("GUIOnEventMode", 1)
Opt("MustDeclareVars", 1)
;
Global Const $sHeader = "Name|Vorname|Telefon"
Global Const $sTitle = "SQLite-Datenbank-Tut ", $sVersion = "2014.08.04 "
Global $hDB, $Query, $aNames, $aRow
;
#Region Hauptfenster
Global $hGUI = GUICreate($sTitle, 800, 500)
GUISetOnEvent($GUI_EVENT_CLOSE, "_CLOSEButton")
Global $hEdit = GUICtrlCreateEdit(" ", 0, 0, 800, 360, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
GUICtrlSetFont(-1, 12, 15, -1, "Courier New") ; Schriftgröße 12, Art Courier New
GUICtrlCreateLabel("Autor: Ritzelrocker04 " & $sVersion, 10, 365)
Global $btnNew = GUICtrlCreateButton("Neuer Datensatz", 10, 450, 100, 35, $BS_DEFPUSHBUTTON)
GUICtrlSetOnEvent(-1, "_NewButton")
Global $btnDsAlleAnzeigen = GUICtrlCreateButton("Alle Datensätze anzeigen", 120, 450, 100, 35, $BS_MULTILINE)
GUICtrlSetOnEvent(-1, "_DsAlleAnzeigen")
Global $btnDsAuswahl = GUICtrlCreateButton("Auswahl", 230, 450, 100, 35)
GUICtrlSetOnEvent(-1, "_DsAuswaehlen")
GUICtrlCreateLabel("Mögliche Eingaben: Meier | m% | %m%", 340, 390, 100, 30, $BS_MULTILINE)
Global $iptDsAuswahlEingabe = GUICtrlCreateInput("", 340, 425, 100, 20)
Global $btnDsAuswahlEingabe = GUICtrlCreateButton("Auswahl nach Eingabe", 340, 450, 100, 35, $BS_MULTILINE)
GUICtrlSetOnEvent(-1, "_DsAuswaehlenEingabe")
Global $cboDsSortierenEingabe = GUICtrlCreateCombo("Name", 450, 425, 100, 20, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
GUICtrlSetData(-1, "ID DESC|Vorname|Name, Vorname|Telefon|Telefon DESC", "Name")
Global $btnDsSortierenEingabe = GUICtrlCreateButton("Sortieren nach Eingabe", 450, 450, 100, 35, $BS_MULTILINE)
GUICtrlSetOnEvent(-1, "_DsSortierenEingabe")
GUICtrlCreateLabel("Telefonnr. eingeben", 580, 365, 100, 20)
Global $iptDsAendernTel = GUICtrlCreateInput("", 580, 385, 100, 20, $ES_NUMBER)
GUICtrlCreateLabel("Hier die ID eingeben", 580, 407, 100, 20)
Global $iptDsAendernID = GUICtrlCreateInput("", 580, 425, 100, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2)
Global $btnDsAendern = GUICtrlCreateButton("Ändern eines Datensatzes", 580, 450, 100, 35, $BS_MULTILINE)
GUICtrlSetOnEvent(-1, "_DsAendern")
GUICtrlCreateLabel("Hier die Eingabe der ID vornehmen", 690, 390, 100, 30, $BS_MULTILINE)
Global $iptDsLoeschen = GUICtrlCreateInput("", 690, 425, 100, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2)
Global $btnDsLoeschen = GUICtrlCreateButton("Löschen eines Datensatzes", 690, 450, 100, 35, $BS_MULTILINE)
GUICtrlSetOnEvent(-1, "_DsLoeschen")
#EndRegion Hauptfenster
;
GUISetState(@SW_SHOW, $hGUI)
;
_SQLite_Startup()
If @error Then Exit MsgBox(16, "SQLite Fehler", "SQLite.dll konnte nicht geladen werden!")
If FileExists("BeginnerDB.sqlite") Then
$hDB = _SQLite_Open("BeginnerDB.sqlite")
If @error Then Exit MsgBox(16, "SQLite Fehler", "Kann die Datenbank nicht öffnen!")
Else
$hDB = _SQLite_Open("BeginnerDB.sqlite") ; eine neue DB anlegen
If @error Then Exit MsgBox(16, "SQLite Fehler", "Kann die Datenbank nicht öffnen!")
; eine neue Tabelle anlegen "BeginnerDB"
_SQLite_Exec(-1, "CREATE TABLE BeginnerDB (ID INTEGER PRIMARY KEY,Name Text,Vorname Text,Telefon Text);")
; Einträge als Muster erzeugen, die später angepasst werden können
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Meyar', 'Klaus', '5714');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Muster','Max','172');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Duck','Donald','030');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Duck','Daisy','040');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Bond','James','007');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Zander', 'Hans', '3714');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Maier', 'Hans', '6714');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Schmitz', 'Petra', '81343');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Mertens', 'Julius', '2297');")
_SQLite_Exec(-1, "INSERT INTO BeginnerDB(Name,Vorname,Telefon) VALUES ('Meier', 'Simone', '5794');")
EndIf
;
#Region Fenster für "Neuer Datensatz"
Global $hGuiNew = GUICreate("", 500, 140, -1, -1, $WS_SYSMENU) ; das Fenster "Neuer Datensatz" erstellen
GUISetOnEvent($GUI_EVENT_CLOSE, "_CLOSEButton")
Global $aHeader = StringSplit($sHeader, '|') ; Überschriften-Array
Global $aNew[$aHeader[0]] ; Array für die Input-IDs
For $i = 1 To $aHeader[0]
GUICtrlCreateLabel($aHeader[$i], 20 + ($i - 1) * 170, 15, 115, 15) ; Überschriften-Label erstellen
GUICtrlSetFont(-1, 8, 400, 0, 'Verdana') ; Schriftgröße und -art der Überschriften festlegen
$aNew[$i - 1] = GUICtrlCreateInput("", 15 + ($i - 1) * 170, 30, 125, 20, Default, $WS_EX_STATICEDGE) ; Eingabefelder erstellen
GUICtrlSetFont(-1, 10, 600, 0, 'Verdana') ; Schriftgröße und -art der Eingabefelder festlegen
Next
Global $hCreate = GUICtrlCreateButton("Datensatz einfügen", 190, 65, 120, 25, $BS_DEFPUSHBUTTON) ; Button zum Datensätze einfügen
GUICtrlSetOnEvent(-1, "_DsEinfuegen")
#EndRegion Fenster für "Neuer Datensatz"
;
While Sleep(1000)
WEnd
;
Func _DsAlleAnzeigen()
GUICtrlSetData($hEdit, "") ; vorher Editfeld leeren
; DB Abfrage der gesamten Tabelle "BeginnerDB"
_SQLite_Query($hDB, "SELECT * FROM BeginnerDB", $Query)
; Auslesen der Spaltenüberschriften
_SQLite_FetchNames($Query, $aNames)
GUICtrlSetData($hEdit, "_SQLite_LibVersion = " & _SQLite_LibVersion() & @CRLF & @CRLF & "SELECT * FROM BeginnerDB" & @CRLF & @CRLF, 1)
GUICtrlSetData($hEdit, StringFormat(" %10s %-10s %-10s %10s ", $aNames[0], $aNames[1], $aNames[2], $aNames[3]) & @CRLF & @CRLF, 1)
; Auslesen der nächsten Zeile
While _SQLite_FetchData($Query, $aRow, False, False) = $SQLITE_OK
GUICtrlSetData($hEdit, StringFormat(" %10s %-10s %-10s %10s ", $aRow[0], $aRow[1], $aRow[2], $aRow[3]) & @CRLF, 1)
WEnd
_SQLite_QueryFinalize($Query)
EndFunc ;==>_DsAlleAnzeigen
;
Func _DsLoeschen()
Local $sMsg = ""
GUICtrlSetData($hEdit, "") ; vorher Editfeld leeren
Local $iID = GUICtrlRead($iptDsLoeschen)
If _SQLite_Exec(-1, "DELETE FROM BeginnerDB WHERE ID = " & $iID & "") = $SQLITE_OK And $iID > 0 And $iID <= _SQLite_LastInsertRowID() Then
$sMsg = "" ; Erfolgreich
Else
$sMsg = @CRLF & @CRLF & "SQLite Error => " & _SQLite_ErrMsg() _
& @CRLF & @CRLF & "Der angegebene Datensatz konnte nicht gefunden werden !" ; Misserfolg
EndIf
GUICtrlSetData($iptDsLoeschen, "") ; Das IDfeld leeren
GUICtrlSetData($hEdit, "_SQLite_LibVersion = " & _SQLite_LibVersion() _
& @CRLF & @CRLF & "DELETE FROM BeginnerDB WHERE ID = " & $iID & "" _
& $sMsg & @CRLF & @CRLF & "Weiter mit => Alle Datensätze anzeigen.", 1)
EndFunc ;==>_DsLoeschen
;
Func _DsAendern()
Local $sMsg = ""
GUICtrlSetData($hEdit, "") ; vorher Editfeld leeren
Local $iID = GUICtrlRead($iptDsAendernID) ; ID auslesen
Local $iTel = GUICtrlRead($iptDsAendernTel) ; Telefon auslesen
;~ Prüfen, ob ID vorhanden ist.
If _SQLite_Exec(-1, "UPDATE BeginnerDB SET Telefon = '" & $iTel & "' WHERE ID = " _
& $iID & "") = $SQLITE_OK And $iID > 0 And $iID <= _SQLite_LastInsertRowID() Then
$sMsg = "" ; Erfolgreich
Else
$sMsg = @CRLF & @CRLF & "SQLite Error => " & _SQLite_ErrMsg() _
& @CRLF & @CRLF & "Der angegebene Datensatz konnte nicht gefunden werden !" ; Misserfolg
EndIf
GUICtrlSetData($iptDsAendernID, "") ; Das IdFeld leeren
GUICtrlSetData($iptDsAendernTel, "") ; Das TelefonFeld leeren
GUICtrlSetData($hEdit, "_SQLite_LibVersion = " & _SQLite_LibVersion() _
& @CRLF & @CRLF & "UPDATE BeginnerDB SET Telefon = " & $iTel & " WHERE ID = " & $iID & "" _
& $sMsg & @CRLF & @CRLF & "Weiter mit => Alle Datensätze anzeigen.", 1)
EndFunc ;==>_DsAendern
;
Func _DsSortierenEingabe()
GUICtrlSetData($hEdit, "") ; vorher Editfeld leeren
Local $s = GUICtrlRead($cboDsSortierenEingabe) ; Eingabe auslesen
; DB Abfrage der gesamten Tabelle "BeginnerDB"
_SQLite_Query($hDB, "SELECT * FROM BeginnerDB ORDER BY " & $s & "", $Query)
; Auslesen der Spaltenüberschriften
_SQLite_FetchNames($Query, $aNames)
GUICtrlSetData($hEdit, "_SQLite_LibVersion = " & _SQLite_LibVersion() & @CRLF & @CRLF & "SELECT * FROM BeginnerDB ORDER BY " & $s & "" & @CRLF & @CRLF, 1)
GUICtrlSetData($hEdit, StringFormat(" %10s %-10s %-10s %10s ", $aNames[0], $aNames[1], $aNames[2], $aNames[3]) & @CRLF & @CRLF, 1)
; Auslesen der nächsten Zeile
While _SQLite_FetchData($Query, $aRow, False, False) = $SQLITE_OK
GUICtrlSetData($hEdit, StringFormat(" %10s %-10s %-10s %10s ", $aRow[0], $aRow[1], $aRow[2], $aRow[3]) & @CRLF, 1)
WEnd
_SQLite_QueryFinalize($Query)
EndFunc ;==>_DsSortierenEingabe
;
Func _DsAuswaehlenEingabe()
GUICtrlSetData($hEdit, "") ; vorher Editfeld leeren
Local $s = GUICtrlRead($iptDsAuswahlEingabe) ; Eingabe auslesen
; DB Auswahlabfrage der Tabelle "BeginnerDB"
_SQLite_Query($hDB, "SELECT * FROM BeginnerDB WHERE Name LIKE '" & $s & "'", $Query)
; Auslesen der Spaltenüberschriften
_SQLite_FetchNames($Query, $aNames)
GUICtrlSetData($hEdit, "_SQLite_LibVersion = " & _SQLite_LibVersion() _
& @CRLF & @CRLF & "SELECT * FROM BeginnerDB WHERE Name LIKE '" & $s & "'" _
& @CRLF & @CRLF & "Weitere Auswahlabfragen befinden sich im Script !" & @CRLF & @CRLF, 1)
GUICtrlSetData($hEdit, StringFormat(" %10s %-10s %-10s %10s ", $aNames[0], $aNames[1], $aNames[2], $aNames[3]) & @CRLF & @CRLF, 1)
; Auslesen der nächsten Zeile
While _SQLite_FetchData($Query, $aRow, False, False) = $SQLITE_OK
GUICtrlSetData($hEdit, StringFormat(" %10s %-10s %-10s %10s ", $aRow[0], $aRow[1], $aRow[2], $aRow[3]) & @CRLF, 1)
WEnd
_SQLite_QueryFinalize($Query)
GUICtrlSetData($iptDsAuswahlEingabe, "") ; Das IDfeld leeren
#cs
Weitere Auswahlabfragen :
"SELECT * FROM BeginnerDB WHERE Telefon > 100"
"SELECT * FROM BeginnerDB WHERE name <> 'Meier'"
"SELECT * FROM BeginnerDB WHERE Telefon >= 100 AND Telefon <= 6000"
"SELECT * FROM BeginnerDB WHERE name LIKE 'm%'"
"SELECT * FROM BeginnerDB WHERE name LIKE '%i%'"
"SELECT * FROM BeginnerDB WHERE name LIKE 'M__er'"
"SELECT * FROM BeginnerDB WHERE name LIKE 'M___r'"
;i Hierbei ist die Anpassung der Anzahl von $aNames und $aRow erforderlich !
"SELECT name, vorname FROM BeginnerDB"
""SELECT Vorname, Name, Telefon FROM BeginnerDB"
#ce
EndFunc ;==>_DsAuswaehlenEingabe
;
Func _DsAuswaehlen()
GUICtrlSetData($hEdit, "") ; vorher Editfeld leeren
; DB Auswahlabfrage der Tabelle "BeginnerDB"
_SQLite_Query($hDB, "SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE Name LIKE 'M___r'", $Query)
; Auslesen der Spaltenüberschriften
_SQLite_FetchNames($Query, $aNames)
GUICtrlSetData($hEdit, "_SQLite_LibVersion = " & _SQLite_LibVersion() _
& @CRLF & @CRLF & "SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE Name LIKE 'M___r'" _
& @CRLF & @CRLF & "Weitere Auswahlabfragen befinden sich im Script !" & @CRLF & @CRLF, 1)
GUICtrlSetData($hEdit, StringFormat(" %-10s %-10s %10s ", $aNames[0], $aNames[1], $aNames[2]) & @CRLF & @CRLF, 1)
; Auslesen der nächsten Zeile
While _SQLite_FetchData($Query, $aRow, False, False) = $SQLITE_OK
GUICtrlSetData($hEdit, StringFormat(" %-10s %-10s %10s ", $aRow[0], $aRow[1], $aRow[2]) & @CRLF, 1)
WEnd
_SQLite_QueryFinalize($Query)
#cs
Weitere Auswahlabfragen :
"SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE Telefon > 100"
"SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE name <> 'Meier'"
"SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE Telefon >= 100 AND Telefon <= 6000"
"SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE name LIKE 'm%'"
"SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE name LIKE '%i%'"
"SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE name LIKE 'M__er'"
"SELECT Vorname, Name, Telefon FROM BeginnerDB WHERE name LIKE 'M___r'"
;i Hierbei ist die Anpassung der Anzahl von $aNames und $aRow erforderlich !
"SELECT name, vorname FROM BeginnerDB"
"SELECT * FROM BeginnerDB WHERE Telefon > 100"
#ce
EndFunc ;==>_DsAuswaehlen
;
Func _DsEinfuegen()
_SQLite_Exec(-1, "INSERT INTO BeginnerDB (Name,Vorname,Telefon) VALUES ('" _
& GUICtrlRead($aNew[0]) & "','" & GUICtrlRead($aNew[1]) & "','" & GUICtrlRead($aNew[2]) & "');")
Sleep(50)
GUICtrlSetData($hEdit, "") ; vorher Editfeld leeren
GUICtrlSetData($hEdit, "_SQLite_LibVersion = " & _SQLite_LibVersion() _
& @CRLF & @CRLF & "INSERT INTO BeginnerDB (Name,Vorname,Telefon) VALUES ('" _
& GUICtrlRead($aNew[0]) & "','" & GUICtrlRead($aNew[1]) & "','" & GUICtrlRead($aNew[2]) & "');" _
& @CRLF & @CRLF & "Weiter mit => Alle Datensätze anzeigen !", 1)
; Alle Eingabefelder leeren, für weitere Eingaben.
For $i = 0 To UBound($aNew) - 1
GUICtrlSetData($aNew[$i], "")
Next
EndFunc ;==>_DsEinfuegen
;
Func _NewButton()
WinSetTitle($hGuiNew, "", "Neuer Datensatz") ; den Titel des Fenster anpassen
GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Datensatz" anzeigen
GUISetState(@SW_DISABLE, $hGUI) ; das Hauptfenster deaktivieren
EndFunc ;==>_NewButton
;
Func _CLOSEButton()
If @GUI_WinHandle = $hGUI Then
;
;~ _SQLite_Exec(-1, "DROP TABLE BeginnerDB;") ; Die Tabelle löschen !
_SQLite_Close()
_SQLite_Shutdown()
;
FileDelete("BeginnerDB.sqlite") ; Die DatenBank löschen !
Exit
Else
GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Datensatz"-Fenster verstecken
GUISetState(@SW_ENABLE, $hGUI) ; Hauptfenster wieder aktivieren
WinActivate($hGUI) ; und in den Vordergrund holen
EndIf
EndFunc ;==>_CLOSEButton
; Ende
SQLite-Listview
#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',10030);")
_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 ('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 'm%'", $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)
_SQLite_GetTable2d(-1, "Select * From BeispielDB WHERE Summe >= 100 AND Summe <= 600", $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