Startseite › Foren › Deutsches LiveCode-Forum › SQLite Pfad für bestehende DB
- Dieses Thema hat 4 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahren, 12 Monaten von Aldred.
-
AutorBeiträge
-
-
September 13, 2017 um 01:10 Uhr #2024
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 ergebnisMeine 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 -
September 13, 2017 um 01:53 Uhr #2026
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.
-
September 13, 2017 um 09:48 Uhr #2033
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
-
September 13, 2017 um 09:52 Uhr #2035
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
-
September 13, 2017 um 20:28 Uhr #2070
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! 🙂
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.