1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. RR04

Beiträge von RR04

  • MSSql Abfrage Datum vergleich

    • RR04
    • 3. April 2019 um 19:13

    Artikel-ID und Artikel sind immer die selben, Änderungen gibt es nur bei Eingang, Ausgang und Bestand!

  • Alinas_SQLite_BuchVw

    • RR04
    • 20. Januar 2016 um 20:00

    Einige Anpassungen sind hinzugekommen.

  • Alinas_SQLite_BuchVw

    • RR04
    • 24. Dezember 2015 um 22:08

    Alinas_SQLite_BuchVw ist ein AutoIt-Listview, neben Editfeld und Gui eine weitere Möglichkeit seine Datenbankinhalte zu präsentieren. Also eine Sichtweise, die uns aus Officeprogrammen geläufig ist, die nun mit der Funktionalität von relationalen Datenbanken einhergeht.

    In diesem Anwendungsbeispiel handelt es sich um eine Datenbank mit einer einzelnen Tabelle, in der eine Büchersammlung verwaltet werden soll. Beim Start der Sammlung soll die Tabelle der Datenbank einige Eckdaten aufnehmen, z.B. ID, Titel, Autor, Erscheinungsdatum und die ISBN.

    Das Datum –
    Mit dem SQL-Befehl “SELECT date(‘now’);” wird nicht nur das aktuelle Datum angezeigt, sondern auch das SQLite interne Datumsformat (YYYY-MM-DD), das in diesem Fall verwendet wird.

    Die Bedienung
    ist denkbar einfach und schnell erklärt. Nach dem Start des Programms wird die DB mit “DB laden” geladen.
    Die Suche funktioniert so, den Suchbegriff eingeben und im Combofeld hier “Titel” voreingestellt eine Auswahl treffen. Nach dem Klick auf “Suche starten” erscheint die Ausgabe im ListView. Zur DB zurück mit “DB laden”.

    Um einen einzelnen Datensatz zu bearbeiten, wechselt man in den Bearbeitungsmodus. Bei einem Rechtsklick auf den jeweiligen Datensatz wird dieser in die Eingabefelder eingefügt und man kann prüfen, ob man eventuell in der Zeile verrutscht ist. Hier können die Datensätze auch eingegeben, geändert oder gelöscht werden. Bevor es losgeht aber erst einmal ein Backup mit “DB BackUp”, nun erhält man eine Txt-Datei, die auch von einem Officeprogramm eingelesen (Daten-Import) werden kann.

    Edit siehe Post #3: Download "sqlite3xx_dll.au3" :
    http://ritzelrocker04.bplaced.net/wordpress/sqli…lite-starterlv/

    PS: Schöne Feiertage!

    AutoIt: Alinas_SQLite_BuchVw.au3
    #Region    ;************ Includes ************
    #include <Date.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GuiStatusBar.au3>
    #include <GUIConstantsEx.au3>
    #include <ComboConstants.au3>
    #include <GuiListView.au3>
    #include <String.au3>
    #include <SQLite.au3>
    #include "sqlite3101_dll.au3"
    #EndRegion    ;************ Includes ************
    
    
    Global $cboSerch, $iptSerch
    Global Const $asWDAYger[7] = ["Sonntag, ", "Montag, ", "Dienstag, ", "Mittwoch, ", "Donnerstag, ", "Freitag, ", "Samstag, "]
    $Buchverwaltung = GUICreate("Alinas Buchverwaltung", 1125, 700)
    $Label = GUICtrlCreateLabel("~  ~  ~  B  U  C  H  V  E  R  W  A  L  T  U  N  G   ~  ~  ~", 0, 8, 1125, 28, 0x01) ; $SS_CENTER=0x01
    GUICtrlSetFont(-1, 16, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x0000FF)
    Global Const $sHeader = "ID|Titel|Autor|Verlag|Genre|Einband|ISBN|" _
    		 & "Preis|Erscheinungsdatum|Seiten|Lagerplatz|Serie|Lfd_Nr|" _
    		 & "Ausgeliehen_an|Ausgeliehen_am|Ausgeliehen_bis|Bestellt|Gelesen|Note|Zusatz|Informationen"
    ;
    Global $aHeader = StringSplit($sHeader, '|')
    $ListView = GUICtrlCreateListView($sHeader, 0, 40, 1125, 220)
    GUICtrlSetBkColor(-1, 0xFFFFFF) ; Color weiß
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    ;
    Global $GetHandleLV = GUICtrlGetHandle($ListView)
    _GUICtrlListView_SetColumn($GetHandleLV, 0, $aHeader[1], 50, 1)
    _GUICtrlListView_SetColumn($GetHandleLV, 1, $aHeader[2], 160, 0)
    _GUICtrlListView_SetColumn($GetHandleLV, 6, $aHeader[7], 120, 1)
    _GUICtrlListView_SetColumn($GetHandleLV, 7, $aHeader[8], 80, 1)
    _GUICtrlListView_SetColumn($GetHandleLV, 8, $aHeader[9], 130, 1)
    _GUICtrlListView_SetColumn($GetHandleLV, 9, $aHeader[10], 50, 1)
    _GUICtrlListView_SetColumn($GetHandleLV, 14, $aHeader[15], 120, 1)
    _GUICtrlListView_SetColumn($GetHandleLV, 15, $aHeader[16], 120, 1)
    ;
    $ContextMenu = GUICtrlCreateContextMenu($ListView)
    $MenuItem = GUICtrlCreateMenuItem("Datensatz bearbeiten", $ContextMenu)
    ;
    #Region ### Main Area ###
    Global $aCtrlLabel[21], $aCtrlInput[21]
    $aCtrlLabel[0] = GUICtrlCreateLabel($aHeader[1], 10, 272, 150, 22)
    $aCtrlInput[0] = GUICtrlCreateInput("0", 170, 272, 180, 26)
    ;
    For $i = 1 To 6
    	$aCtrlLabel[$i] = GUICtrlCreateLabel($aHeader[$i + 1], 10, 272 + $i * 35, 150, 22)
    	$aCtrlInput[$i] = GUICtrlCreateInput($i, 170, 272 + $i * 35, 360, 26)
    Next
    ;
    For $j = 7 To 12
    	$aCtrlLabel[$j] = GUICtrlCreateLabel($aHeader[$j + 1], 10 + Mod($j, 2) * 290, 515 + Int(($j - 7) / 2) * 35, 150, 22)
    	$aCtrlInput[$j] = GUICtrlCreateInput($j, 170 + Mod($j, 2) * 240, 515 + Int(($j - 7) / 2) * 35, 120, 26)
    Next
    ;
    For $k = 13 To 19
    	$aCtrlLabel[$k] = GUICtrlCreateLabel($aHeader[$k + 1], 620, 272 + ($k - 13) * 33, 120, 22)
    	$aCtrlInput[$k] = GUICtrlCreateInput($k, 750, 272 + ($k - 13) * 33, 120, 26)
    Next
    ;
    For $m = 0 To 19
    	GUICtrlSetFont($aCtrlLabel[$m], 12, 400, 0, "Arial")
    	GUICtrlSetFont($aCtrlInput[$m], 12, 400, 0, "Arial")
    Next
    ;Information
    $aCtrlLabel[20] = GUICtrlCreateLabel($aHeader[20 + 1], 895, 272, 100, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $aCtrlInput[20] = GUICtrlCreateEdit("AA_info 20", 895, 300, 217, 160)
    ;
    $btnUpdate = GUICtrlCreateButton("DS Update", 895, 470, 105, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $btnDelete = GUICtrlCreateButton("DS Löschen", 1010, 470, 105, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    ;Suche
    $iptSearch = GUICtrlCreateInput("Suchen nach >>>", 620, 510, 492, 26)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $cboSearch = GUICtrlCreateCombo("Titel", 620, 545, 241, 25, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
    GUICtrlSetData(-1, "Autor|Verlag")
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $btnSearch = GUICtrlCreateButton("Suche starten", 871, 545, 241, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    ;
    $btnDBladen = GUICtrlCreateButton("Datenbank laden", 871, 583, 241, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $btnClear = GUICtrlCreateButton("Eingabefelder leeren", 620, 583, 241, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    ;
    Const $trR = _StringRepeat("-", 368)
    $lblBottomLine = GUICtrlCreateLabel($trR, 10, 615, 1110, 8)
    #EndRegion ### Main Area ###
    ;
    #Region ### Bottom Area ###
    Global $aCtrllbl[3], $aCtrlipt[3], $aLblTxt[3] = ["Buchanzahl:", "Ges. Seitenzahl:", "Ges. Buch NP:"] ;"Büchermenge:"
    For $l = 0 To 2
    	$aCtrllbl[$l] = GUICtrlCreateLabel($aLblTxt[$l], 10 + ($l) * 260, 640, 120, 22)
    	GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    	$aCtrlipt[$l] = GUICtrlCreateInput($l, 140 + ($l) * 260, 638, 120, 26, 0x0002) ; $ES_RIGHT=0x0002
    	GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    Next
    ;
    $btnSave = GUICtrlCreateButton("Speichern", 1010, 635, 105, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $btnBackUp = GUICtrlCreateButton("DB BackUp", 895, 635, 105, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    #EndRegion ### Bottom Area ###
    ;
    Global $tatusBar = _GUICtrlStatusBar_Create($Buchverwaltung)
    ;
    GUISetState(@SW_SHOW)
    ;
    _timeStatus() ; Funktion aufrufen sofortige einmalige Ausführung nach Programmstart
    AdlibRegister('_timeStatus', 1000) ; Start alle 1000 milisec.
    ;
    _SQLite_Startup(@ScriptDir & "\sqlite3.dll", False, 1) ; BugFix Idee, da DLL ja nicht mehr mitgeliefert wird
    ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
    Global $g_db_Database = _SQLite_Open(@ScriptDir & "\buchverwaltung.rr04")
    ;
    Global $tatusBar_PartsWidth[3] = [450, 900, -1]
    _GUICtrlStatusBar_SetParts($tatusBar, $tatusBar_PartsWidth)
    _GUICtrlStatusBar_SetText($tatusBar, " _SQLite_LibVersion = " & _SQLite_LibVersion(), 0)
    _GUICtrlStatusBar_SetText($tatusBar, " " & $asWDAYger[@WDAY - 1] & _DateTimeFormat(_NowCalc(), 2), 1)
    _GUICtrlStatusBar_SetMinHeight($tatusBar, 20)
    ;
    ;~ ### Die Tabelle löschen, wenn vorhanden. ###
    _SQLite_Exec(-1, "DROP TABLE IF EXISTS Buchverwaltung;")
    ;~ ### Die Tabelle erstellen, wenn nicht vorhanden. ###
    _SQLite_Exec($g_db_Database, "CREATE TABLE IF NOT EXISTS Buchverwaltung(ID INTEGER PRIMARY KEY AUTOINCREMENT,Titel,Autor,Verlag,Genre,Einband,ISBN,Preis,Erscheinungsdatum,Seiten,Lagerplatz,Serie,Lfd_Nr,Ausgeliehen_an,Ausgeliehen_am,Ausgeliehen_bis,Bestellt,Gelesen,Note,Zusatz,Information);")
    ;
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'13 Tage','Giambanco, Valentina','Droemer Knaur','Thriller','Hardcover','978-3426513996','14.99','2014-03-03','576','R1-F2','','','Thomas','2015-11-01','2016-01-01','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Abgründe','Strobel, Arno','Loewe','Thriller-J','Taschenbuch','978-3785578643','9.95','2014-03-10','240','R1-F2','','','','','','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Bedroht','Koppen, Hans','Heyne','Thriller','Taschenbuch','978-3453268012','14.99','2013-03-27','411','R1-F2','','','','','','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Agent 6','Smith, Tom Rob','Goldmann','Thriller','Taschenbuch','978-3442546770','9.99','2011-09-14','540','R1-F2','','','','','','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Belladonna','Slaughter, Karin','rororo','Thriller','Taschenbuch','978-3499239140','6.00','2003-03-03','413','R1-F1','','','','','','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Bis zum letzten Atemzug','Baldacci, David','Bastei Lübbe','Thriller','Taschenbuch','978-3404165537','9.99','2011-04-01','574','R1-F2','','','','','','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Bittere Wunden','Slaughter, Karin','blanvalet','Thriller','Hardcover','978-3764505172','19.99','2014-09-01','576','R1-F1','','','','','','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Datenbanken','Anton, Autor','Heyne','Fachbuch','Hardcover','978-3453268017','49.99','2013-03-27','411','R1-F2','','','Max','2015-11-01','2016-12-31','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Latex','Antonow, E.','Galileo','Fachbuch','Hardcover','978-3453268021','24.99','2011-01-01','411','R1-F2','','','Martin','2012-10-01','2013-02-15','','','..','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'C Programmieren','Erlenkötter, H.','rororo','Fachbuch','Hardcover','978-3453268010','11.99','2013-10-01','411','R1-F2','','','Lutz','2015-02-01','2016-10-13','','','..','..','..');")
    ;
    _SQLite_CountRows('buchverwaltung')
    ;
    While True
    	Switch GUIGetMsg()
    		Case -3
    			_Exit()
    		Case $ListView
    			_GUICtrlListView_SortItems($ListView, GUICtrlGetState($ListView))
    		Case $btnSave
    			_DsInsert()
    			_ListViewFill()
    			_iptClear()
    			_SQLite_CountRows('buchverwaltung')
    		Case $btnDelete
    			_DsDelete()
    			_ListViewFill()
    			_SQLite_CountRows('buchverwaltung')
    		Case $btnUpdate
    			_DsUpdate()
    			_ListViewFill()
    		Case $btnSearch
    			_ListViewFill("SELECT ROWID,* From Buchverwaltung WHERE " & GUICtrlRead($cboSearch) & " LIKE '" & GUICtrlRead($iptSearch) & "';")
    		Case $btnDBladen
    			_ListViewFill()
    		Case $btnClear
    			_iptClear()
    		Case $btnBackUp
    			_DB_BackUp()
    		Case $MenuItem
    			_iptClear()
    			_ListView2ipt()
    	EndSwitch
    WEnd
    ;
    Func _timeStatus()
    	Local $zeit = _DateTimeFormat(_NowCalc(), 5)
    	_GUICtrlStatusBar_SetText($tatusBar, " Uhrzeit: " & $zeit, 2)
    EndFunc   ;==>_timeStatus
    ;
    Func _ListViewFill($QLite = "SELECT ROWID,* FROM Buchverwaltung;")
    	Local $hQuery, $aRow
    	_GUICtrlListView_DeleteAllItems($ListView)
    ;~ 	_SQLite_Query(-1, "SELECT ROWID,* FROM Buchverwaltung;", $hQuery)
    	_SQLite_Query(-1, $QLite, $hQuery)
    	While _SQLite_FetchData($hQuery, $aRow, False, False) = $SQLITE_OK ; Read Out the next Row
    		GUICtrlCreateListViewItem(_ArrayToString($aRow, '|', 1, 21), $ListView)
    		GUICtrlSetBkColor(-1, 0xF0E68C) ; (0xF9F9F9) helles Grau (0xB9D1EA) helles blau (0xF0E68C)
    	WEnd
    	_SQLite_QueryFinalize($hQuery)
    	_GUICtrlListView_RegisterSortCallBack($ListView) ; CallBack registrieren zum sortieren
    EndFunc   ;==>_ListViewFill
    ;
    Func _Exit() ; Datenbank schließen und down.
    	_GUICtrlListView_UnRegisterSortCallBack($ListView)
    	_SQLite_Close($g_db_Database)
    	_SQLite_Shutdown()
    	Exit
    EndFunc   ;==>_Exit
    ; DS löschen
    Func _DsDelete()
    	_SQLite_Exec(-1, "DELETE From Buchverwaltung WHERE ID = " & GUICtrlRead($aCtrlInput[0]) & ";")
    EndFunc   ;==>_DsDelete
    ;
    Func _DsUpdate()
    	_SQLite_Exec(-1, "UPDATE Buchverwaltung SET  Titel = '" & GUICtrlRead($aCtrlInput[1]) & "', Autor = '" _
    			 & GUICtrlRead($aCtrlInput[2]) & "', Verlag = '" & GUICtrlRead($aCtrlInput[3]) & "', Genre = '" _
    			 & GUICtrlRead($aCtrlInput[4]) & "', Einband = '" & GUICtrlRead($aCtrlInput[5]) & "', ISBN = '" _
    			 & GUICtrlRead($aCtrlInput[6]) & "', Preis = '" & GUICtrlRead($aCtrlInput[7]) & "', Erscheinungsdatum = '" _
    			 & GUICtrlRead($aCtrlInput[8]) & "', Seiten = '" & GUICtrlRead($aCtrlInput[9]) & "', Lagerplatz = '" _
    			 & GUICtrlRead($aCtrlInput[10]) & "', Serie = '" & GUICtrlRead($aCtrlInput[11]) & "', Lfd_Nr = '" _
    			 & GUICtrlRead($aCtrlInput[12]) & "', Ausgeliehen_an = '" & GUICtrlRead($aCtrlInput[13]) & "', Ausgeliehen_am = '" _
    			 & GUICtrlRead($aCtrlInput[14]) & "', Ausgeliehen_bis = '" & GUICtrlRead($aCtrlInput[15]) & "', Bestellt = '" _
    			 & GUICtrlRead($aCtrlInput[16]) & "', Gelesen = '" & GUICtrlRead($aCtrlInput[17]) & "', Note = '" _
    			 & GUICtrlRead($aCtrlInput[18]) & "', Zusatz = '" & GUICtrlRead($aCtrlInput[19]) & "', Information = '" _
    			 & GUICtrlRead($aCtrlInput[20]) & "' WHERE ID = " & GUICtrlRead($aCtrlInput[0]) & ";")
    EndFunc   ;==>_DsUpdate
    ;
    Func _DsInsert()
    	_SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL, '" & GUICtrlRead($aCtrlInput[1]) & "','" _
    			 & GUICtrlRead($aCtrlInput[2]) & "','" & GUICtrlRead($aCtrlInput[3]) & "','" & GUICtrlRead($aCtrlInput[4]) _
    			 & "','" & GUICtrlRead($aCtrlInput[5]) & "','" & GUICtrlRead($aCtrlInput[6]) & "','" & GUICtrlRead($aCtrlInput[7]) _
    			 & "','" & GUICtrlRead($aCtrlInput[8]) & "','" & GUICtrlRead($aCtrlInput[9]) & "','" & GUICtrlRead($aCtrlInput[10]) _
    			 & "','" & GUICtrlRead($aCtrlInput[11]) & "','" & GUICtrlRead($aCtrlInput[12]) & "','" & GUICtrlRead($aCtrlInput[13]) _
    			 & "','" & GUICtrlRead($aCtrlInput[14]) & "','" & GUICtrlRead($aCtrlInput[15]) & "','" & GUICtrlRead($aCtrlInput[16]) _
    			 & "','" & GUICtrlRead($aCtrlInput[17]) & "','" & GUICtrlRead($aCtrlInput[18]) & "','" & GUICtrlRead($aCtrlInput[19]) _
    			 & "','" & GUICtrlRead($aCtrlInput[20]) & "');")
    EndFunc   ;==>_DsInsert
    ;
    Func _ListView2ipt()
    ;~ 	MsgBox(0, "Information", "Selected Mark: " & _GUICtrlListView_GetSelectionMark($ListView))
    	Local $electionMark = _GUICtrlListView_GetSelectionMark($ListView)
    	If $electionMark > -1 Then
    		Local $aLVitem = _GUICtrlListView_GetItemTextArray($ListView, $electionMark)
    		For $i = 1 To $aLVitem[0]
    ;~ 			MsgBox(0, "Information", "ItemTextArray: " & $aIpt[$i-1] & "  " & $aLVitem[$i])
    			GUICtrlSetData($aCtrlInput[$i - 1], $aLVitem[$i])
    		Next
    	EndIf
    EndFunc   ;==>_ListView2ipt
    ;
    Func _iptClear()
    	For $i = 0 To 20
    		GUICtrlSetData($aCtrlInput[$i], "")
    	Next
    EndFunc   ;==>_iptClear
    ;
    ;===================================================================================================
    ; Function Name....: _SQLite_CountRows
    ; Description......: Ermittelt die Anzahl von Datensätzen für eine Tabelle
    ; Parameter(s).....: $_sTable  Tabellenname
    ; Requirement(s)...: Eine mit _SQLite_Open() geöffnete DB
    ; .................: #include <SQLite.au3>
    ; Return Value(s)..: Erfolg:   Anzahl der Datensätze
    ; .................: Fehler:   -1   @error = 1,  @extended = SQLite-@error
    ; Author(s)........: BugFix (bugfix@autoit.de)
    ;===================================================================================================
    Func _SQLite_CountRows($_sTable)
    	Local $hQuery, $aQuery, $iRet = 0, $iErr
    	If $SQLITE_OK <> _SQLite_Query(-1, "SELECT count(*) FROM " & $_sTable & ";", $hQuery) Then
    		$iErr = _SQLite_ErrCode()
    		_SQLite_QueryFinalize($hQuery)
    		Return SetError(1, $iErr, -1)
    	EndIf
    	While _SQLite_FetchData($hQuery, $aQuery) = $SQLITE_OK
    		$iRet = $aQuery[0]
    	WEnd
    	_SQLite_QueryFinalize($hQuery)
    ;~ 	Return $iRet
    	GUICtrlSetData($aCtrlipt[0], $iRet)
    EndFunc   ;==>_SQLite_CountRows
    ;
    Func _DB_BackUp()
    	Local $BackUpFolder = @ScriptDir & "\_BackUps"
    	If Not FileExists($BackUpFolder) Then DirCreate($BackUpFolder)
    	Local $hFileOpen = FileOpen($BackUpFolder & "\" & @YEAR & "-" & @MON & "-" & @MDAY & "_BuchVw.db.txt", 2)
    	If $hFileOpen = -1 Then Exit MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    
    
    	Local $aResult, $iRows, $iColumns
    	Local $iRval = _SQLite_GetTable2d(-1, "SELECT * FROM Buchverwaltung;", $aResult, $iRows, $iColumns)
    
    
    	FileWriteLine($hFileOpen, $sHeader)
    
    
    	For $iR = 1 To $iRows
    		$sText = ""
    		For $iC = 0 To $iColumns - 1
    			$sText &= $aResult[$iR][$iC]
    			If $iC < $iColumns - 1 Then $sText &= "|"
    		Next
    		FileWriteLine($hFileOpen, $sText)
    	Next
    	FileClose($hFileOpen)
    	MsgBox(64, "Info", "DB BackUp ist fertig !", 3)
    EndFunc   ;==>_DB_BackUp
    
    
    ; Ende
    Alles anzeigen

    Dateien

    Alinas_BuchVw.png 73,05 kB – 1.740 Downloads
  • gelöst: Datensatz löschen

    • RR04
    • 15. Dezember 2015 um 22:00

    So jetzt aber, versuch es mal!
    Ich mache das mit Wiedervorlage in die Inputfelder und der Nutzer hat noch einmal Zeit zum Überlegen (in Zeile verrutscht). Jetzt brauche ich die ID nur aus dem Inputfeld auslesen.

    AutoIt
    ; DS löschen
    Func _DsDelete()
    	$electionMark = _GUICtrlListView_GetSelectionMark($ListView)
    	MsgBox(0, "", $electionMark)
    	$ItemText = _GUICtrlListView_GetItemText($ListView, $electionMark)
    	MsgBox(0, "", $ItemText)
    	_SQLite_Exec(-1, "DELETE From Buchverwaltung WHERE ID = " & $ItemText & "")
    	_ListViewFill()
    EndFunc   ;==>_DsDelete
    Zitat von Kanashius

    da Alina auch eine sortierfunktion eingebaut hat, die die Listview mischt.

    Das hat mich auf die Idee gebracht.

  • gelöst: Datensatz löschen

    • RR04
    • 14. Dezember 2015 um 07:33

    Es sollte so funktionieren:

    AutoIt
    ; DS löschen
    Func _DsDelete()
    	Local $sel = _GUICtrlListView_GetSelectedIndices($listview)
    ;~ 	MsgBox(0, "SelectedIndices", $sel)
    	If $sel <> -1 Then
    		_SQLite_Exec(-1, "DELETE From Buchverwaltung WHERE ROWID = " & $sel & "")
    	EndIf
    	_ListViewFill()
    EndFunc   ;==>_DsDelete
  • gelöst: Datensatz löschen

    • RR04
    • 13. Dezember 2015 um 17:12

    @Lina,
    wenn Du neu startest werden Deine übungsdaten neu eingegeben!?

    Zur Probe lasse ich den Datensatz 5 löschen - Alles OK !

    AutoIt
    Func _DsDelete()
    ;~ ### zB. Datensatz 5 wird gelöscht ###
    	_SQLite_Exec(-1, "DELETE From Buchverwaltung WHERE ROWID = 5")
    	_ListViewFill()
    EndFunc   ;==>_DsDelete
  • gelöst: Datensatz löschen

    • RR04
    • 13. Dezember 2015 um 16:40

    Besser:

    AutoIt
    _SQLite_Exec($hDatabase,"Delete * from Buchverwaltung where ROWID='"&$sel&"'")
  • (gelöst bis hierhin) Datenausgabe in ein ListView "DB-2-ListView"

    • RR04
    • 11. Dezember 2015 um 19:06

    @Lina,
    hatte vorhin keine Zeit mehr, war im Büro. Das Einfügen funktioniert schon.

    Spoiler anzeigen
    AutoIt
    #Region    ;************ Includes ************
    #Include <SQLite.au3>
    #Include <GuiListView.au3>
    #EndRegion ;************ Includes ************
    
    
    ;Opt
    Opt("GUIOnEventMode", 0) ; Du benutzt den MsgLoop-Modus also muss hier "0" stehen oder die Zeile gleich ganz weglassen, weil "0" der Standardwert ist
    
    
    Global $hQuery, $aNames, $aRow
    ;GUI Titel
    $Buchverwaltung = GUICreate("Buchverwaltung erstellt mit AutoIt", 1121, 629, 280, 183)
    
    
    ; Titel oben Mitte
    $Label1 = GUICtrlCreateLabel("~  ~  ~  B  U  C  H  V  E  R  W  A  L  T  U  N  G   ~  ~  ~", 304, 8, 516, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x0000FF)
    
    
    ; ListView
    $listview = GUICtrlCreateListView("ID |Titel|Autor|Verlag|Erscheinungsdatum|Genre|Preis|Einband|ISBN|Seiten|Lagerplatz|Serie|Bestellt|Gelesen|Note|Zusatz|Information|Ausgeliehen_an|Ausgeliehen_am|Ausgeliehen_bis", 10, 40, 1105, 168)
    
    
    $List1 = GUICtrlCreateList("", 8, 40, 1105, 168)
    ;~ GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    
    
    ; Hauptbereich
    $Label2 = GUICtrlCreateLabel("Titel:  ", 10, 274, 45, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input1 = GUICtrlCreateInput("", 160, 272, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label3 = GUICtrlCreateLabel("Autor:", 10, 305, 45, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input2 = GUICtrlCreateInput("", 160, 302, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label4 = GUICtrlCreateLabel("Verlag: ", 10, 335, 58, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input3 = GUICtrlCreateInput("", 160, 332, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label5 = GUICtrlCreateLabel("Genre: ", 10, 365, 55, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input4 = GUICtrlCreateInput("", 160, 362, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label6 = GUICtrlCreateLabel("Erscheinungsdatum: ", 10, 395, 149, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input5 = GUICtrlCreateInput("YYYYMMDD", 160, 392, 100, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label7 = GUICtrlCreateLabel("Serie: ", 267, 395, 50, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input6 = GUICtrlCreateInput("", 313, 392, 208, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label8 = GUICtrlCreateLabel("Preis: ", 10, 424, 146, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input7 = GUICtrlCreateInput("", 160, 422, 81, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label9 = GUICtrlCreateLabel("Lagerplatz: ", 267, 424, 85, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input8 = GUICtrlCreateInput("", 354, 422, 165, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label10 = GUICtrlCreateLabel("Einband: ", 10, 455, 70, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input9 = GUICtrlCreateInput("", 160, 452, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label11 = GUICtrlCreateLabel("ISBN", 10, 485, 40, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input10 = GUICtrlCreateInput("", 160, 482, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label12 = GUICtrlCreateLabel("Seiten: ", 10, 514, 57, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input11 = GUICtrlCreateInput("", 160, 512, 81, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label13 = GUICtrlCreateLabel("ausgeliehen an: ", 624, 272, 117, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input12 = GUICtrlCreateInput("", 760, 272, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label14 = GUICtrlCreateLabel("ausgeliehen am: ", 624, 302, 122, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input13 = GUICtrlCreateInput("", 760, 302, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label15 = GUICtrlCreateLabel("ausgeliehen bis: ", 624, 332, 121, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input14 = GUICtrlCreateInput("", 760, 334, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label16 = GUICtrlCreateLabel("Bestellt: J/N", 624, 384, 86, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input15 = GUICtrlCreateInput("", 760, 384, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label17 = GUICtrlCreateLabel("gelesen: J/N", 624, 414, 90, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input16 = GUICtrlCreateInput("", 760, 414, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label18 = GUICtrlCreateLabel("Note: 1 - 6", 624, 444, 76, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input17 = GUICtrlCreateInput("", 760, 444, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label19 = GUICtrlCreateLabel("Zusatz:", 624, 474, 53, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input18 = GUICtrlCreateInput("", 760, 472, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label20 = GUICtrlCreateLabel("Information:", 896, 384, 84, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Edit1 = GUICtrlCreateEdit("", 896, 408, 217, 89)
    
    
    $Label22 = GUICtrlCreateLabel("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------", 8, 256, 1105, 17)
    $Label23 = GUICtrlCreateLabel("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------", 8, 544, 1105, 17)
    
    
    $Button16 = GUICtrlCreateButton("S U C H E N", 621, 509, 132, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Input19 = GUICtrlCreateInput("Suchbegriff hier eingeben", 760, 507, 347, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label24 = GUICtrlCreateLabel("Lfd.-Nr:", 350, 515, 55, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input20 = GUICtrlCreateInput("", 415, 512, 105, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetData(-1, "000002")
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    
    
    ; unterer Bereich
    $Label26 = GUICtrlCreateLabel("Büchermenge:  ", 13, 595, 113, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input22 = GUICtrlCreateInput("", 128, 592, 81, 26) ; hier soll die ges. Bücheranzahl eingefügt werden und nicht veränderbar durch Anwender
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label27 = GUICtrlCreateLabel("Ges. Seitenzahl:", 270, 596, 117, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input23 = GUICtrlCreateInput(" ", 394, 592, 81, 26) ; hier soll die ges. Seitenzahl eingefügt werden und nicht veränderbar durch Anwender
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label28 = GUICtrlCreateLabel("Ges. Buch NP:", 572, 595, 106, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlCreateInput("", 680, 592, 121, 26) ; hier soll der ges. Bücherwert eingefügt werden und nicht veränderbar durch Anwender
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Button20 = GUICtrlCreateButton("Speichern", 991, 592, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;  Ausleihbutton
    $Button17 = GUICtrlCreateButton("Ausleihen", 888, 272, 227, 25)
    
    
    ; DK 1 / 2 / 3
    $Button18 = GUICtrlCreateButton("DK  1 / 2 / 3", 894, 334, 99, 26)
    ; D 1 / 2
    $Button19 = GUICtrlCreateButton("D 1 / 2", 1012, 334, 99, 25)
    
    
    ; GUI anzeigen
    GUISetState(@SW_SHOW)
    
    
    ;  !!! Datei lösche ich hier nur, damit ich sie nicht manuell löschen muss in der Übungsphase !!!
    FileDelete(@ScriptDir & "\buchverwaltung.db")
    
    
    ; DLL Pfad
    _SQLite_Startup(@ScriptDir & "\sqlite3.dll", False, 1) ; BugFix Idee, da DLL ja nicht mehr mitgeliefert wird
    
    
    ; gibt die SQL Version in die Console aus
    ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
    
    
    ; Datenbank öffnen, ggf. erstellen
    Global $g_db_Database = _SQLite_Open(@ScriptDir & "\buchverwaltung.db")
    
    
    ; Datenbanktabelle
    _SQLite_Exec($g_db_Database, "CREATE TABLE IF NOT EXISTS Buchverwaltung(ID INTEGER PRIMARY KEY AUTOINCREMENT,Titel,Autor,Verlag,Erscheinungsdatum,Genre,Preis,Einband,ISBN,Seiten,Lagerplatz, Serie,Bestellt,Gelesen,Note,Zusatz,Information,Ausgeliehen_an,Ausgeliehen_am,Ausgeliehen_bis);")
    
    
    ; jeweils ein Datensatz wird dazu geschrieben, Daten sind von Enno Jüders zur Verfügung gestellt.
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'13 Tage','Giambanco, Valentina','Droemer Knaur','2014.03.03','Thriller','14.99','Hardcover','9783426513996','576','R1-F2','','','N','','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Abgründe','Strobel, Arno','Loewe','2014.03.10','Thriller-J','9.95','Taschenbuch','9783785578643','240','R1-F2','','','N','','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Agent 6','Smith, Tom Rob','Goldmann','2011.09.14','Thriller','9.99','Taschenbuch','9783442546770','540','R1-F2','Leo Demidow Bd.3','','N','','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Bedroht','Koppen, Hans','Heyne','2013.03.27','Thriller','14.99','Taschenbuch','9783453268012','411','R1-F2','','','J','1','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Belladonna','Slaughter, Karin','rororo','2003.03.03','Thriller','6.00','Taschenbuch','9783499239140','413','R1-F1','Grant County Bd.1','','J','1','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Bis zum letzten Atemzug','Baldacci, David','Bastei Lübbe','2011.04.01','Thriller','9.99','Taschenbuch','9783404165537','574','R1-F2','King & Maxwell Bd. 4','austauschen','N','','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Bittere Wunden','Slaughter, Karin','blanvalet','2014.09.01','Thriller','19.99','Hardcover','9783764505172','576','R1-F1','Georgia Bd.4','','J','2','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL,'Datenbanken','Anton, RR04','blanvalet','01.09.2014','Fachb.','24.95','Hardcover','9783764505172','576','R1-F1','Georgia Bd.4','','J','2','','','','..','..');")
    
    
    _ListViewFill()
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case -3
    			_Exit() ;###
    		Case $listview
    			_GUICtrlListView_SortItems($listview, GUICtrlGetState($listview)) ; hier wird das Listview sortiert
    		Case $Button20 ; Speichern
    			_DsInset()
    	EndSwitch
    WEnd
    
    
    Func _Exit() ; Datenbank schließen und down.
    	_GUICtrlListView_UnRegisterSortCallBack($listview)
    	_SQLite_Close($g_db_Database)
    	_SQLite_Shutdown()
    	Exit
    EndFunc   ;==>_Exit
    
    
    ; Datensatz von GUI2DB
    Func _DsInset()
    	Local $aworte
    	$inputs1 = GUICtrlRead($Input1) ; Titel
    	$inputs2 = GUICtrlRead($Input2) ; Autor
    	$inputs3 = GUICtrlRead($Input3) ; Verlag
    	$inputs5 = GUICtrlRead($Input5) ; Erscheinungsdatum
    	$inputs4 = GUICtrlRead($Input4) ; Genre
    	$inputs7 = GUICtrlRead($Input7) ; Preis
    	$inputs9 = GUICtrlRead($Input9) ; Einband
    	$inputs10 = GUICtrlRead($Input10) ; ISBN
    	$inputs11 = GUICtrlRead($Input11) ; Seiten
    	$inputs8 = GUICtrlRead($Input8) ; Lagerplatz
    	$inputs6 = GUICtrlRead($Input6) ; Serie
    	$inputs15 = GUICtrlRead($Input15) ; Bestellt
    	$inputs16 = GUICtrlRead($Input16) ; Gelesen
    	$inputs17 = GUICtrlRead($Input17) ; Note
    	$inputs18 = GUICtrlRead($Input18) ; Zusatz
    	$edits1 = GUICtrlRead($Edit1) ; Information  <------- ???
    	$inputs12 = GUICtrlRead($Input12) ; Ausgeliehen_an
    	$inputs13 = GUICtrlRead($Input13) ; Ausgeliehen_am
    	$inputs14 = GUICtrlRead($Input14) ; Ausgeliehen_bis
    
    
    ;~ 		NULL (sprich nall)- ID, Tabelle Buchverwaltung
    	_SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES(NULL, '" & $inputs1 & "','" & $inputs2 & "','" & $inputs3 & "','" & $inputs4 & "','" & $inputs5 & "','" & $inputs6 & "','" & $inputs7 & "','" & $inputs8 & "','" & $inputs9 & "','" & $inputs10 & "','" & $inputs11 & "','" & $inputs12 & "','" & $inputs13 & "','" & $inputs14 & "','" & $inputs15 & "','" & $inputs16 & "','" & $inputs17 & "','" & $inputs18 & "','" & $edits1 & "');")
    	_ListViewFill()
    EndFunc   ;==>_DsInset
    
    
    Func _ListViewFill()
    	_GUICtrlListView_DeleteAllItems($listview)
    	_SQLite_Query(-1, "SELECT ROWID,* FROM Buchverwaltung;", $hQuery)
    	While _SQLite_FetchData($hQuery, $aRow, False, False) = $SQLITE_OK ; Read Out the next Row
    		GUICtrlCreateListViewItem(_ArrayToString($aRow, '|', 1, 19), $listview)
    	WEnd
    	_SQLite_QueryFinalize($hQuery)
    	_GUICtrlListView_RegisterSortCallBack($listview) ; CallBack registrieren zum sortieren
    EndFunc   ;==>_ListViewFill
    Alles anzeigen
  • (gelöst bis hierhin) Datenausgabe in ein ListView "DB-2-ListView"

    • RR04
    • 11. Dezember 2015 um 08:25

    @Lina


    11.12.2015

    ID|Titel|Autor|Verlag|E-Datum|Genre|Preis|Einband|ISBN|Seiten|Lager|Serie|Bestellt|Gelesen|Note|Zusatz|Information
    ID INTEGER PRIMARY KEY AUTOINCREMENT,Titel,Autor,Verlag,Erscheinungsdatum,Genre,Preis,Einband,ISBN,Seiten,Lagerplatz, Serie,Bestellt,Gelesen,Note,Zusatz,Information,Ausgeliehen_an,Ausgeliehen_am,Ausgeliehen_bis

    Hier stimmt was nicht in den Zeilen 22 und 178 !?

  • SQLite-BeginnerDB

    • RR04
    • 20. August 2014 um 11:52
    [autoit][/autoit][autoit][/autoit][autoit]

    ;~ [user='994']Alina[/user]
    ;~ Die Punkte zu 2 sind eigentlich Gestaltungssachen im Bereich von Autoit,
    ;~ also ob ein Hotkey oder ein "&" eingebaut wird.

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

    ;~ Zahlen:
    ;~ Zahlen finden sich im Beispiel SQLite-Listview.
    ;~ Hier kann ein bestimmter Zahlenbereich angezeigt werden.

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

    _SQLite_GetTable2d(-1, "Select * From BeispielDB WHERE Summe >= 100 AND Summe <= 600", $aResult, $iRows, $iColumns) ;i Zahlenbereich anzeigen

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

    ;~ Direkte Sortierabfragen haben immer mit "ORDER BY" zutun.
    ;~ Sortiert wird aufsteigend, absteigend und
    ;~ auch über mehrere Spalten. Diese Funktionalität bringt SQLite schon mit.

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

    _SQLite_GetTable2d(-1,"SELECT * FROM BeispielDB ORDER BY Name DESC", $aResult, $iRows, $iColumns) ;i sortieren über eine Spalte, Abfsteigend => DESC
    _SQLite_GetTable2d(-1,"SELECT * FROM BeispielDB ORDER BY Name, Vorname", $aResult, $iRows, $iColumns) ;i sortieren über zwei Spalten

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

    _SQLite_GetTable2d(-1, "SELECT * FROM BeispielDB ORDER BY Summe", $aResult, $iRows, $iColumns) ;i A-ufsteigend => ASC
    _SQLite_GetTable2d(-1, "SELECT * FROM BeispielDB ORDER BY Summe ASC", $aResult, $iRows, $iColumns) ;i A-ufsteigend => ASC
    _SQLite_GetTable2d(-1, "SELECT * FROM BeispielDB ORDER BY Summe DESC", $aResult, $iRows, $iColumns) ;i Abfsteigend => DESC

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

    ;~ Datum:
    ;~ Intern verwendet SQLite das Format "2010-12-30".
    ;~ Datum und Zeit Funktionen sind hier gut beschrieben: http://www.sqlite.org/lang_datefunc.html
    ;~ Ende

    [/autoit]
  • SQLite-BeginnerDB

    • RR04
    • 19. August 2014 um 09:44

    @Lina

    Zu den aktuellen Beispielen:
    1.)
    Der Button "Alle Datensätze anzeigen"
    setzt einen bestimmten Befehl ab (SELECT * FROM BeginnerDB). Die ganzen Spalten der Tabelle werden ausgewählt und angezeigt. Ihn werden wir im Verlauf öfter brauchen, um Änderungen anzeigen zulassen.
    2.)
    Beim Button "Auswahl nach Eingabe"
    gibt es die Möglichkeit eine Art Filter anzugeben. Den Namen, den Anfangsbuchstaben des Namens, mit einem m im Namen oder mit Unterstrichen fals die Schreibweise von "Meier" abweicht (z.B.: "Meier, m%, %m%, M___r").
    3.)
    Die "Telefonnr. eingeben"
    und die ID des Datensatzes ändern nur die Telefonnummer, andere Einträge sind nicht betroffen. Der SQL-Befehl "Update" steckt hier dahinter und wird, dann auch angezeigt.
    4.)
    Datensätze
    Datenbanken dienen zum Speichern großer Datenmengen. Das schließt Buch-, Musik-, Videosammlungen, Artikelverw. oder die klassische Adressenkartei nicht aus. Doch wir sollten größer denken. Börse, Banken und Internet machen es vor. So ist es auch möglich, ein ganzes Kaufhaus abzubilden. Die Warenannahme mit Lieferanten, eine Etage mit Schuhen, ja noch eine Etage mit Handtaschen, aber auch Personalabteilung und Buchhaltung dürfen nicht fehlen. Die Daten werden in den dafür angelegten Tabellen der relationalen Datenbank unsortiert gespeichert.

    Im Beispiel SQLite-Listview wird ein Beispiel mit Zahlen gezeigt. Es beruht auf einer anderen Tabelle ("ID,Name, Vorname,Summe").
    Die Darstellung kann vielseitig sein. Hier bereits gezeigt ein einfaches Editfeld und ein Listview, doch auch eine Eigabemaske mit Inpufeldern ist möglich.

    Ich empfehle das Beilegen der aktuellen sqlite3.dll zu den Skripten (z.B. ins @ScriptDir).

    Seht selbst, wie SQLite reagiert!

  • SQLite-BeginnerDB

    • RR04
    • 17. August 2014 um 12:11

    SQLite in Version 3.8.6 wurde veröffentlicht. Ich empfehle das Beilegen der aktuellen sqlite3.dll zu den Skripten !

  • Datumsabfrage

    • RR04
    • 14. August 2014 um 09:19

    Hi,
    z.B.:

    [autoit]

    GUICtrlCreateDate()

    [/autoit]
  • Case Anweisung mit Array?

    • RR04
    • 13. August 2014 um 19:36

    Danke Oscar!
    Ich habe auch daran gedacht,

    [autoit]


    #cs
    Switch $i
    Case 0

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

    Case 1

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

    Case ;[...]

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

    EndSwitch
    #ce

    [/autoit]


    aber bei 80 Stück !?

  • Case Anweisung mit Array?

    • RR04
    • 13. August 2014 um 19:06

    Hi,
    ein Beispiel:

    [autoit]


    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    _main()
    Func _main()
    Local $input, $nMsg, $result, $aBtn[20]
    Local $aBtnLbl[20] = ["7", "8", "9", " / ", "4", "5", "6", " * ", "1", "2", "3", " - ", ".", "0", "^", " + ", "(", ")", "Clear", "="]
    GUICreate("Mod-TRechner-Tut", 235, 325)
    $input = GUICtrlCreateInput("", 10, 10, 215, 30, BitOR(0x0800, 0x0002)) ; $ES_READONLY $ES_RIGHT
    For $k = 0 To 19
    $aBtn[$k] = GUICtrlCreateButton($aBtnLbl[$k], 10 + Mod($k, 4) * 55, 50 + Int($k / 4) * 55, 50, 50)
    Next

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

    GUISetState(@SW_SHOW)

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

    Do
    $nMsg = GUIGetMsg()
    For $i = 0 To 18
    If $nMsg = $aBtn[$i] Then GUICtrlSetData($input, GUICtrlRead($input) & $aBtnLbl[$i])
    Next
    If $nMsg = $aBtn[19] Then
    $result = Execute(StringRegExpReplace(GUICtrlRead($input), '[^\.\(\)\*\/\-\+\d]', ''))
    ;~ $result = Execute(GUICtrlRead($input))
    If $result == "1.#INF" Or $result == "-1.#IND" Then $result = "Error"
    GUICtrlSetData($input, $result)
    EndIf
    If $nMsg = $aBtn[18] Then GUICtrlSetData($input, "")
    Until $nMsg = -3
    EndFunc ;==>_main
    ; Ende

    [/autoit]
  • SQLite-BeginnerDB

    • RR04
    • 9. August 2014 um 14:19

    Jescho

    Danke für Dein Lob und Interesse.

    Die von Dir ausgemachten %-Zeichen sind, in diesem Fall, Platzhalter/Wildcards. Sie gehören direkt zur SELECT-Abfrage von SQLite. Im Spoiler SQL habe ich diese Abfragen hinzugefügt und kommentiert.

    Ein Listview
    ist nur die Präsentation derselben Daten auf eine andere Art. Einem Beginner würde, dass den Blick auf das Wesentliche verstellen. So habe ich SQLite-Listview mit der Abfrage nach den Summen zwischen 100 und 600 separat eingefügt. ;)

  • SQLite-BeginnerDB

    • RR04
    • 8. August 2014 um 10:00

    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
    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
    [autoit]


    ;~ 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);")

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

    ; 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

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

    #cs
    Weitere Auswahlabfragen :

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

    "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'"

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

    ;i Hierbei ist die Anpassung der Anzahl von $aNames und $aRow erforderlich !
    "SELECT name, vorname FROM BeginnerDB"
    ""SELECT Vorname, Name, Telefon FROM BeginnerDB"
    #ce

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

    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)

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

    #cs
    Weitere Auswahlabfragen :

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

    "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'"

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

    ;i Hierbei ist die Anpassung der Anzahl von $aNames und $aRow erforderlich !
    "SELECT name, vorname FROM BeginnerDB"
    "SELECT * FROM BeginnerDB WHERE Telefon > 100"
    #ce

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

    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

    [/autoit]
    SQLite-Listview
    [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',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);")

    [/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 '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)

    [/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]

    Dateien

    BeispielDB.gif 18,61 kB – 2.700 Downloads
  • Taschenrechner. Neueinstieg

    • RR04
    • 6. August 2014 um 09:45

    Hi und herzlich Willkommen!
    Hier ein Beispiel mit Kommentaren. ;)

    Spoiler anzeigen
    [autoit]


    ; Ein kleiner Rechner:
    Local $sInput = InputBox('Eingabe', 'Rechnung:')
    ; bei error und cancel beenden
    If @error Then Exit
    ; beachte 2.5*2 = 5 und (5+10)*2 = 30
    Local $nOutput = Execute(StringRegExpReplace($sInput, '[^\(\)\.\*\/\-\+\d]', '.'))
    ; bei einem fehlerhaften Ergebnis die Variable "$nOutput" mit "Error " überschreiben
    ; mit Unterstrich eine Zeilenumbruch erhalten
    If $nOutput == "1.#INF" Or $nOutput == "-1.#IND" _
    Or $nOutput = "" Then $nOutput = "Error "
    ; die Variable "$Ergebnis" ausgeben
    MsgBox(0, '', $nOutput, 3)
    Exit
    ; Ende

    [/autoit]
  • SQLite-Listview

    • RR04
    • 28. Juli 2014 um 16:00

    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]

    Dateien

    SQLite-listview_02.au3 2,94 kB – 648 Downloads
  • RAM Auslastung auslesen (in GB und Prozent)

    • RR04
    • 21. Mai 2014 um 17:29

    Hi!
    Schöne Idee, so kannst Du es leichter handhaben (Einbau in eine Statusleiste z.B.). ;)

    [autoit]


    MsgBox(0, "_ramGetUsagePercent", StringFormat("RAM Auslastung : %d%", _ramGetUsagePercent()))
    Func _ramGetUsagePercent()
    Local $aMem = MemGetStats()
    Return $aMem[0]
    EndFunc ;==>_ramUsagePercent
    ; Ende

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™