Bilder SQL

  • Hallo Leute,

    ich habe ein Problem beim Einfügen/Löschen von Bildern in der DB. Ich wollte den Namen des Bildes in die DB speichern und somit anzeigen lassen, abhängig von der jeweiligen ID. Ich hatte bisschen rum probiert , kam aber leider nicht ans Ziel. Vielleicht kann mir einer weiterhelfen bei meinem Problem?


    Gruß Neight

  • Was genau ist denn das Problem?

    Ohne den kompletten Code zu testen, würde ich vermuten das der INSERT in die Datenbank nicht funktioniert.

    Das liegt daran, dass du versucht die ID in der Datenbank zu setzen, wobei das Feld auf AUTOINCREMENT gesetzt ist.

    SQLite kümmert sich selbst darum die ID bei jedem INSERT um eins zu erhöhen und wirft einen Fehler wenn du versucht die ID manuell zu setzen.

    Einfach mal beim INSERT die ID weglassen und schauen ob es geht.

  • & $num & "','" & $aStr[0] & "','" & $aStr[1] & "','" & $aStr[2] _

    Nimm einfach anstatt diesem fragwürdigen $num - Konstrukt einfach die 0, also etwa so:

    Code
    "INSERT INTO tabelle (spalten ...) VALUES (0, '" & $variable & "');"

    und so in etwa weiter. Jetzt in etwa klar, funktioniert es jetzt?

    neben AutoIt jetzt auch noch in C/C++, Java und Python aktiv :)
    Stand 04.04.2018, 13:34

  • SQLite kümmert sich selbst darum die ID bei jedem INSERT um eins zu erhöhen und wirft einen Fehler wenn du versucht die ID manuell zu setzen.

    Ich ziehe meine Aussage zurück. Zwar kümmert sich SQLite selbst darum, meckert aber NICHT wenn man diese manuell setzt. Man kann sogar Zahlen ohne Probleme überspringen.

    Wenn du nur den Namen des Bildes in der DB speichern willst, sollte das doch kein großes Problem für dich sein, da du ja schon einige SQL Befehle in deinem Script geschrieben hast.

    Einfach eine weitere Spalte in der Tabelle hinzufügen wo du den Pfad/Dateiname abspeicherst, den Pfad/Name dann auslesen, den kompletten Pfad zu dem Bild zusammensetzen und mit GUICtrlSetImage das Bild anzeigen.

    Um das Bild zu löschen kannst du dann einfach die Spalte auf NULL setzen.

    PS: Du hast ein Typo in Zeile 24 MinealDB.sqlite => MineralDB.sqlite

  • Danke euch beiden , ich werde mich nachher nochmal ransetzen und versuchen das um zusetzen. Ich hatte nen kleinen Denkfehler drin.

    Zeile 24 habe ich korrigiert, ganz übersehen^^