SQLite Dateien in VirtualStore?

Alles rund um die Programmierung mit Qt
Antworten
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

SQLite Dateien in VirtualStore?

Beitrag von Tomaxx »

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
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

Re: SQLite Dateien in VirtualStore?

Beitrag von Tomaxx »

Ist die Frage zu dumm oder hat kein anderer das Problem?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: SQLite Dateien in VirtualStore?

Beitrag von Christian81 »

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
Tomaxx
Beiträge: 71
Registriert: 7. Juni 2017 09:05

Re: SQLite Dateien in VirtualStore?

Beitrag von Tomaxx »

Hab ich gemacht.

Code: Alles auswählen

    string pfad = QDir::currentPath().toStdString() + "/PumpPro.db";
    sqlite3 *database;
    sqlite3_open(pfad.c_str(), &database);
Trotzdem kopiert Windows beim ersten Start die Datenbank in den VirtualStore und alle Änderungen landen dort.
Die Datenbank im Programmpfad bleibt unverändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: SQLite Dateien in VirtualStore?

Beitrag von Christian81 »

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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Re: SQLite Dateien in VirtualStore?

Beitrag von MichaelS »

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
Antworten