Hallo!
Ich habe mein Programm soweit dass es prima läuft. Dann habe ich eine Modifikation der Datenbank vorgenommen und neu installiert.
Leider wird die neue Datenbank ignoriert und es wird auf alte Kopien im Pfad ../AppData/Local/VirtualStore/...
Wegen der Modifikationen an der datenbank werden natürlich Felder nicht gefunden -> das Programm stürzt ab.
Super ärgerlich!
Wie geht ihr damit um?
Thomas
SQLite Dateien in VirtualStore?
Re: SQLite Dateien in VirtualStore?
Ist die Frage zu dumm oder hat kein anderer das Problem?
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: SQLite Dateien in VirtualStore?
Absoluten Pfad beim Öffnen der DB angeben und schon legt Windows die Datei dort ab wo sie hin soll.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: SQLite Dateien in VirtualStore?
Hab ich gemacht.
Trotzdem kopiert Windows beim ersten Start die Datenbank in den VirtualStore und alle Änderungen landen dort.
Die Datenbank im Programmpfad bleibt unverändert.
Code: Alles auswählen
string pfad = QDir::currentPath().toStdString() + "/PumpPro.db";
sqlite3 *database;
sqlite3_open(pfad.c_str(), &database);
Die Datenbank im Programmpfad bleibt unverändert.
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: SQLite Dateien in VirtualStore?
http://blog.m-ri.de/index.php/2007/02/1 ... tenseiten/
Man legt einfach keine Daten im Programm-Ordner ab, dazu gibt es andere Verzeichnisse - siehe http://doc.qt.io/qt-5/qstandardpaths.ht ... ation-enum
Man legt einfach keine Daten im Programm-Ordner ab, dazu gibt es andere Verzeichnisse - siehe http://doc.qt.io/qt-5/qstandardpaths.ht ... ation-enum
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: SQLite Dateien in VirtualStore?
Dieser olle VirtualStore hat mich auch schon Nerven und viele Stunden gekostet. Er wird von Windows immer dann benutzt, wenn ein Benutzer auf eine Datei zugreift, auf dem ihm die (Schreib-)rechte fehlen. Die Zugriffe werden von Windows automatisch umgelenkt. Einmal umgelenkt, greift Windows nicht mehr auf die Originaldatei zu, daher helfen auch die absoluten Pfadangaben nicht. Zur Lösung des Problems muss die SQLite DB daher in einem öffentlichen Verzeichnis liegen, in dem alle Benutzer, die daraufzugreifen sollen, Schreibrechte haben.
Gruß Michael
Gruß Michael