Seite 1 von 1
QSettings beim fehlenden Schreibrechten
Verfasst: 3. Dezember 2009 15:26
von AuE
Hi, wohin schreibt die QSetting eigentlich wenn für den Ini File Path aus dem ich lese keine Schreibrechte habe?
Solang das Programm läuft kann ich noch auf die gespeicherten Werte zugreifen, allerdings wenn das Programm beendet wird kann ich bei einem Neustart die eingefügten Key<->Value Paare nicht mehr laden.
Ich würde auf ein tmp-File tippen, aber wohin?
Verfasst: 3. Dezember 2009 15:33
von franzf
Es gibt eigentlich USER_SCOPE und SYSTEM_SCOPE.
Wenn du deine QSettings nicht mit nem Pfad (absolut oder relativ) konstruierst, sondern applicationName() und organizationName() verwenden lässt, hast du nie Probleme.
Ansonsten wenn das das einzige Settings-File ist, kannst es ja mal versuchen mit QSettings::setPath() dem USER_SCOPE auf ein für diech schreibbbares DIR umzubiegen.
Keine Ahnung ob es klappt, war nur der erste Schluss aus einem kurzen Blick in die Doku.
Aber setz den Pfad vor dem Erstellen einer Instanz, damit auch die Werte aus USER_SCOPE wirklich eingelesen werden...
Verfasst: 3. Dezember 2009 15:52
von AuE
Hi,
dank dir erstmalfür deine AW aber so eincach ists leider nicht
Geht darum das ich in der odbc.ini (aus /etc ) lese/schreibe
Viel mehr helfen tut da schon das isWritable - aber die Frage is wohin wirds geschrieben wenn es nicht writable ist.
Verfasst: 3. Dezember 2009 16:37
von RHBaum
Ja schreibt er denn ???
nen fallback sucht er eigentlich nur fuers lesen.
Wenn dein QSettings wirklich gleich auf /etc/... zeigt, wird das schreiben in die hose gehen oder ?
Ich denk das er die Wertepaare zur laufzeit nur im speicher haelt (oder tempfile), und erst beim ende auf die inis schreiben will ...
Ciao ...
Verfasst: 4. Dezember 2009 06:44
von AuE
Er meckert nicht, sagen wir es so.

Er sagt mir nix via Konsole o.ä. und beim auslesen(zur Laufzeit) hat er die Variablen noch. Nach dem beenden sind sie weg...
Also im Prinzip wird das Prog später als root laufen aber mhhh wenigstens ne warning hätt ich erwartet

Verfasst: 4. Dezember 2009 09:19
von solarix
mit sync() und status() solltest du diesen Fall eigentlich abdecken können.. (QSettings::AccessError)
Möglichweise bist du dann jedoch noch von
http://bugreports.qt.nokia.com/browse/QTBUG-3328 betroffen...
hth..