Listview, Sqlite

  • Hallo Leute,

    ich habe ein Problem beim Einfügen von neuen Datensätzen in die Sqlite Datenbank. Ich habe ein vorläufiges Gui - Fenster zum Neueinfügen gemacht. Kann mir vielleicht einer zeigen, wie ich es am Besten umsetzen kann?

    Ich bräuchte noch eine Idee, wie man durch das Anklicken der Einträge im Listview, rechts die jeweiligen passenden Felder ausgefüllt werden.

    Wäre das eine Möglichkeit zum Anklicken _GUICtrlListView_ClickItem


    Gruß

    Neight

  • _GUICtrlListView_ClickItem klickt ein Item an -> markiert es, ist also nicht das, was du willst.
    Für alles was das anklicken,... betrifft sieh dir mal das Beispiel hier an: https://www.autoitscript.com/autoit3/docs/l…View_Create.htm

    Insbesondere Der große Packen an auskommentierten Zeilen ist sehr gut, wenn man wissen will, worauf man alles reagieren kann.


    Was das andere Fenster angeht empfehle ich: Steig auf den OnEventMode um (Das Beispiel zu https://www.autoitscript.com/autoit3/docs/f…lSetOnEvent.htm sollte dabei helfen)

    Wenn du es nur schnell zum testen willst:

    1. änder Zeile 156 zu ExitLoop und mach vorher ein guidelete($XXX), damit nicht das ganze Programm beendet wird, sondern nur das Fenster geschlossen
    Eine andere Möglichkeit wäre noch, die Gui und deren Controls GLobal zu deklarieren und dort in der Haupt-While-Schleife drauf zu reagieren.

  • Hallo @Neight
    Noch ein Hinweis zu deinem Speichern in der Datenbank. Der Query-String ist nicht ganz richtig.

    Erst einmal ist es sinnlos die Nummer bei Insert anzugeben, weil das ja dein Primary Key ist. Das heißt du kannst dir auch das Inputfeld bei New sparen. Außerdem schreibst du die Inputs als wären sie ein Array. Das ist falsch. Die eckigen Klammern müssen da weg.

    AutoIt
    _SQLite_Exec(-1, "INSERT INTO Mineralien (Name,Formel,Gewicht,Farbe,Fundort,Fundland) VALUES ('" & _
    		GUICtrlRead($Input4) & "','" & GUICtrlRead($Input2) & "','" & GUICtrlRead($Input5) & "','" & GUICtrlRead($Input3)& "','" & GUICtrlRead($Input6)& "','" & GUICtrlRead($Input1) & "');")

    Grüße autoiter

  • So läuft es erstmal... aber da hast du noch viel Arbeit vor dir.

    Wäre ich an deiner Stelle... mit deinem Wissenstand über AutoIt... bevor ich so ein... doch schon recht großes Projekt mit gutem Gewissen anfangen kann, wären vorher erst mal noch ein paar Wochen/Monate Grundlagen üben angesagt!!!

    Wäre das eine Möglichkeit zum Anklicken

    Ich würde dafür die GUIListViewEx UFD nehmen - damit kannst du jede Zelle direkt inplace im Listview editieren. Ein paar Beispiele gibt es dazu auch auf der Seite bzw. im Download-Archiv.


    Mineralien_DB
  • Hey Bitnugger,

    danke für deine Hilfe und Zeit bei der Bearbeitung des Scripts.

    Ja ich merke auch, dass das Projekt doch recht schwierig ist. Mal gucken vielleicht muss ich es erstmal pausieren, weil es schon noch paar Dinge gibt, wo ich nicht genau weiß wie ich es umsetze.

  • Ach was, lass dich mal nicht entmutigen. Ist doch eigentlich gut, wenn man in einem Skript, das einen interessiert gleich viele Teilbereiche einüben kann.

    Grüße autoiter

  • Das Projekt an sich birgt keine besonderen Schwierigkeiten... es ist/wird nur recht umfangreich... den fettesten Anteil dabei nimmt am Ende dann der SQLite-Teil ein... und hier hast du schon vom Ansatz her arge Probleme gehabt, ebenso mit deiner Child-GUI... weil deine Basics dafür einfach noch nicht ausreichen.

    Zudem würde ich es nicht als pausieren betrachten... sondern als eine intelligente Herangehensweise, wenn du erst noch etwas an deinen Basics arbeitest, was dir am Ende garantiert einen hohen Zeitgewinn einbringt und vor allem aber deine Nerven schont - und du am Ende dann mit Stolz auf ein - dein erstes - wirklich sauber programmiertes Projekt/Kunstwerk blicken kannst. ;)

    Und schau mal hier...SQLite_helper.au3 - evtl. kannst du damit ja was anfangen... habe es mir nicht näher angesehen.

  • ja da hast du wohl Recht.
    Das meinte ich mit pausieren, erstmal sich noch paar Grundlagen angucken und denn mal gucken ob und wie es weiter geht mit dem Projekt.

    Ich werde es mir mal angucken, vielleicht hilft es mir weiter.

    Neight