SQLite Pfad für bestehende DB

Startseite Foren Deutsches LiveCode-Forum SQLite Pfad für bestehende DB

Ansicht von 4 Antwort-Themen
  • Autor
    Beiträge
    • #2024
      Aldred
      Teilnehmer

      Moin ihr Coder,

      folgendes Problem:

      Ich habe mit dem altbekannten Firefox-Plugin eine SQLite-DB mit einer Tabelle „benutzer“ erstellt und diese an allen möglichen Stellen im Dokumente-Ordner gespeichert. Direkt om Dokumenteordner, im „My Live Code“-Ordner und im dortigen „Extensions“-Ordner. Im script steht dazu folgendes:

      put specialFolderPath(„documents“) &“/myDB.sqlite“ into dbPath

      Ich vermute, dass er die Verbindung irgendwie aufbaut, aber die Tabelle „benutzer“ nicht findet. Wenn ich die ausgelesenen Daten in ein Field eintragen lasse, bringt er mir eine Fehlermeldung, dass er keine derart benannte Tabelle findet.

      put „SELECT * FROM benutzer“ into sql
      put revDataFromQuer(tab, return, dbPath, sql) into ergebnis
      set the dgtext of group „userChoiceDG“ to ergebnis

      Meine Frage lautet wie folgt:

      Ist der Speicherort für meine DB richtig und der Code ist falsch, oder erstellt er irgendwo eine DB mit gleichem Namen, in der die Tabelle natürlich nicht existiert?

      Liebe Grüße
      Aldred

    • #2026
      Aldred
      Teilnehmer

      P.S.

      Vielleicht sollte ich noch anmerken, dass ich den obigen Code aus dem Gedächtnis aufgeschrieben habe, da ich gerade auf Nachtschicht bin. Bei Bedarf kann ich aber noch den Originalcode nachreichen, wenn ich zu Hause bin.

    • #2033
      Klaus Major
      Verwalter

      Hallo Aldred,

      willkommen im Forum! 🙂

      Direkt im Dokumenteordner = specialFolderPath(„documents“) &“/myDB.sqlite“
      Der Pfad ist schon mal richtig, das Skript ist auch korrekt!

      Du kannst mit LC auch die Namen der darin enthaltenen Tabellen abfragen mit

      answer revDatabaseTableNames(dbid)

      Gruß

      Klaus

    • #2035
      Klaus Major
      Verwalter

      MOMENT! 😀

      Beim zweiten lesen fiel mit das hier auf:
      put specialFolderPath(„documents“) &“/myDB.sqlite“ into dbPath

      put revDataFromQuer(tab, return, dbPath, sql) into ergebnis

      Der Pfad ist zwar korrekt, aber hier leider fehlt am Platze!
      Du musst Dich zuerst mit „revopendatabase(…)“ mit der Datenbank verbinden, diese Funktion liefert dann eine ID zurück, die Du in weiteren Datenbank Befehlen benutzen musst!

      local tDBID
      ## Oder auch GLOBAL, wie Du es halt brauchst
      ….
      put specialFolderPath(„documents“) &“/myDB.sqlite“ into dbPath
      put revOpenDatabase(„sqlite“, dbPath) into tDBID

      Später dann:

      put revDataFromQuer(tab, return, tDBID, sql) into ergebnis

      Gruß

      Klaus

    • #2070
      Aldred
      Teilnehmer

      Mann mann mann, Klaus!
      Ich danke dir.
      Ich hatte die Datenbank mit revOpenDatabase schon geöffnet aber die Pfad-Variabel in revDataFromQuery eingegeben und nicht die ID-Variabel.
      Unglaublich, da liest man sich stundenlang den Code durch und sucht nach Fehlern und dann ist es so einfach.
      Nochmal, vielen Dank dir! Läuft jetzt wie geschmiert! 🙂

Ansicht von 4 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.