Anfängerfrage zu SQLite

  • Hallo erstmal,

    wie in der Überschrift beschrieben habe ich eine kurze Frage zu SQLite.
    Ich würde gerne ein Anmeldeskript schreiben das mir bei der Anmeldung in der Domäne Daten des Benutzers und seines PCs übermittelt und in einer SQLite DB abspeichert. Allerdings scheitert es schon beim erstellen der Datenbank.

    Mein Code:

    Code
    #include <SQLite.au3>
    _SQLite_Open(test.db)
    _SQLite_Close(test.db)

    Meinen Verständnis nach sollte das eine Datei test.db im Skriptverzeichnis anlegen. Allerdings funktioniert das schon nicht, es kommt aber auch keine Fehlermeldung.

    Und jetzt meine eigentlich Frage. :D
    Muss ich SQLite irgendwie in AutoIT einbinden oder habe ich doch nur einen Syntax-/Verständnisfehler? Ich bin davon ausgegangen das die mitgelieferten UDFs ohne weiteres funktionieren. Leider konnte ich auch nichts hier Forum finden, vermutlich weils so einfach ist das dass bisher keiner Fragen musste. ?(

    Vielen Dank schon mal für jede Hilfe.
    Gruss
    Gofid

    Einmal editiert, zuletzt von gofid (4. April 2014 um 11:15)

  • du musst Sql erst im script "starten"

    [autoit]

    #include <SQLite.au3>
    _SQLite_Startup()
    $hDatenbank = _SQLite_Open("test.db")
    _SQLite_Close($hDatenbank)
    _SQLite_Shutdown()

    [/autoit]


    und anschließent "herrunterfahren". ansonsten um SQL normal zu verwenden ist alles nötige in der SQLite.au3.
    Die SQLite.au3 hat einen include für die SQLite.dll.au3 die erstellt falls nicht vorhanden eine Dll für SQL im

    [autoit]

    @SystemDir

    [/autoit]

    wenn das scheitert wird eine Temporäre datei erstellt die mit

    [autoit]

    _SQLite_Shutdown()

    [/autoit]

    gelöscht wird. Es ist auch möglich eine eigene SQLite.dll zu verwenden wenn man das braucht, dafür einfach mal _SQLite_Startup() in der hilfe nachschlagen.

    Einmal editiert, zuletzt von Skerg (4. April 2014 um 10:54)

  • Danke Dir vielmals für deine Hilfe und Erklärungen, Skerg.

    Leider hat das bei mir nicht automatisch funktioniert, erst nachdem ich manuell die SQLite.dll in den System32 Ordner kopiert habe, wurde die Datenbankdatei erstellt. Aber Hauptsache es geht jetzt und ich kann weiter machen. :thumbup:

    Gruss
    gofid

  • Danke Dir vielmals für deine Hilfe und Erklärungen, Skerg.

    Leider hat das bei mir nicht automatisch funktioniert, erst nachdem ich manuell die SQLite.dll in den System32 Ordner kopiert habe, wurde die Datenbankdatei erstellt. Aber Hauptsache es geht jetzt und ich kann weiter machen. :thumbup:

    Gruss
    gofid

    Man muss Adminrechte haben um die sqlite3.dll in den Systemordner zu packen. das war wahrscheinlich das Problem

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
    • Offizieller Beitrag

    Ich empfehle immer, sich die aktuelle SQLite.dll herunterzuladen und den Skripten z.B. per FileInstall mit in das Skriptverzeichnis zu packen. Anschliessend mit

    [autoit]

    _SQLite_Startup(@ScriptDir & "\sqlite3.dll", False, 1)

    [/autoit]

    laden und alles ist gut.
    Die Verwendung von _SQLite_Startup() ohne Parameter erfordert bei nicht vorhandener SQLite.dll auf dem PC zwingend einen aktiven Internetzugang und ausserdem darf autoitscript.com nicht gerade down sein (denn darauf verweist der interne DL-Link).

    Es ist mir absolut unverständlich, warum die Binärform der SQLite.dll aus den Includes entfernt wurde. Die Anbindung an autoitscript.com bleibt durch das jetzige Prozedere doch genauso erhalten. Aber wahrscheinlich bin ich einfach zu unintelligent um die geniale Idee dahinter zu verstehen... :whistling: