[How-To] Mit SQLite arbeiten

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [How-To] Mit SQLite arbeiten

      Hi,

      wenn man sich in AutoIT so etwas wie ein resource File wünscht, dann ist eine DB momentan die beste und einfachste Lösung.

      Und die DB Engine, die im AutoIT Pack als UDF integriert ist, hat eine extrem leichte Handhabung.

      Man kann DB Dateien erstellen, diese werden dann im angegebenen Pfad erstellt und wenn sie schon existieren, dann werden sie geöffnet und man kann auf sie zugreifen.

      Aber man braucht dazu die SQLite UDF und die SQLite.dll .
      Die mitgegebene UDF enthält bereits alle nötigen Funktionen, und die DLL wird auf Wunsch automatisch erzeugt.

      C-Quellcode

      1. #include <SQLite.au3> ;; Die UDF
      2. #include <SQLite.dll.au3> ;; Die DLL, sie wird automatisch abgespeichert


      Nachdem includen der ganzen Sachen muss die DLL ja geöffnet werden usw.
      Dazu wird folgendes gemacht :

      Quellcode

      1. _SQLite_StartUp()


      Danach öffnen wir eine DB (falls die angegebene Datei nicht existiert wird sie erstellt)

      Quellcode

      1. $hDB = _SQLite_Open("DB.db")

      [COLOR="PaleTurquoise"]Nun wird die Datei "DB.db" im Momentanen Ordner erstellt.
      Man kann das ganze auch ohne eine Datei zu benutzen machen.
      Nur wird dann auch nichts gespeichert.[/COLOR]

      Quellcode

      1. $hDB = _SQLite_Open(":memory:")
      2. ;; oder einfach
      3. $hDB = _SQLite_Open ()

      [COLOR="PaleTurquoise"]Nun nachdem die DB erstellt wurde kann man mithilfe der UDF und der DLL auf sie zugreifen.[/COLOR]

      Als Beispiel erstellen wir mal eine Tabelle :

      Quellcode

      1. _SQLite_Exec ($hDB, "CREATE TABLE Tabelle (Row1,Row2,Row3);")

      [COLOR="PaleTurquoise"]Anstatt "$hDB" kann man auch einfach "-1" verwenden, dabei wird die als letzte geöffnete DB verwendet.[/COLOR]

      Nun wo eine Tabelle existiert kann auch etwas eingetragen werden.

      Quellcode

      1. _SQLite_Exec ($hDB, "INSERT INTO Tabelle (Row1,Row2,Row3) VALUES ('(C)','by','*electriZer*');")

      [COLOR="PaleTurquoise"]_SQLite_Exec() kann man dazu verwenden um neue Daten anzulegen, zum Auslesen wäre _SQLite_Query() vorteilhafter, da bei _SQLite_Exec() keine Rückgabe erfolgt.[/COLOR]

      Damit hätten wir den ersten Eintrag,
      um den wieder auszulesen, damit das ganze auch seinen Sinn hat,
      müssen wir folgendes tun :

      Quellcode

      1. Local $hQuery,$aRow
      2. _SQLite_Query($hDB, "SELECT * From Tabelle",$hQuery)

      [COLOR="PaleTurquoise"]Ihr seht hier schon eine Variable die gar nicht deklariert wird ($hQuery).
      Die Funktion ist so aufgebaut das man nicht alles selber deklarieren muss ($x=0), sondern, dass das die Funktion übernimmt.
      Man gibt den Namen der Variable an und die Funktion speichert die Rückgabe dort hinein.
      Aber damit der Compiler keine Probleme macht, dass $hQuery nicht deklariert sei. Wurde $hQuery hier mit "Local" als eine Local Variable deklariert ("Local" ist auch so etwas wie "Global"). Und $aRow wird für die folgende Funktion benötigt, der Grund der Deklaration ist der gleiche wie bei $hQuery.[/COLOR]

      Weiter gehts, das war nicht alles:

      Quellcode

      1. _SQLite_FetchData ($hQuery, $aRow)
      2. MsgBox(0x40,"[INFO]",$aRow[0]&" "&$aRow[1]&" "&$aRow[2])

      Und schon wird euch in einer MsgBox der Inhalt in der Tabelle angegeben.

      Aber jetzt muss die DB und die DLL noch geschlossen werden.

      Quellcode

      1. _SQLite_Close($hDB)
      2. _SQLite_Shutdown()


      Um noch mehr mit SQLite anzufangen als eine kleine Tabelle mit 3 Spalten zu erstellen und auszulesen, solltet ihr SQL lernen.
      Und wer schon mit MySQL gearbeitet hat kann auch mit SQLite arbeiten.
      (PS : SQLite kann man auch in PHP verwenden)

      Den gesamten Code müsst ihr euch dann mal selber zusammensuchen =)
      Und die SQLite UDF hat noch ein paar Funktionen mehr auf Lager.

      [SIZE="3"](C) by Jiyan Akgül
      Dieses Tutorial ist Urheberrechtlich geschützt,
      das Kopieren ohne Erlaubnis sowie Fälschung des Urheber Namens macht sie Strafbar.[/SIZE]
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )