Seite 1 von 1

Schreibrechte

Verfasst: Fr, 12. Feb 2010 20:35
von Jan
Bei der Installation wird ein Verzeichnis mit Admin-Rechten erstellt und alle benötigten Dateien da rein geschrieben. Beim ersten Programmstart werden Indizee erstellt. Bestandteil der Index-Routine ist jeweíls ein PACK. Xbase++ legt dazu temporäre Dateien an. Und da liegt bei Vista und 7 das Problem. Denn wenn der User keine Admin-Rechte hat, dann knallt es. Weil offensichtlich keine Schreibrechte vorhanden sind.

Wie kann ich das umgehen? Kann man per Kommandozeile nach der Installation soetwas wie ein chmod 777 machen? Oder sonst irgendeine Idee?

Jan

Re: Schreibrechte

Verfasst: Fr, 12. Feb 2010 23:45
von brandelh
Jan hat geschrieben:Bestandteil der Index-Routine ist jeweíls ein PACK. Xbase++ legt dazu temporäre Dateien an. Und da liegt bei Vista und 7 das Problem.
Hallo Jan,

temporäre Dateien werden normalerweise im aktuellen Verzeichnis angelegt.
Was aktuell ist, ist aber nicht immer klar ;-) und im Server-/Citrix-Betrieb auch meist nicht zugänglich.
Ich lege daher dieses immer fest und zwar auf das (Hilfs-)Datenverzeichnis meiner Anwendung.
Das Programmverzeichnis (und meist auch der Rest) ist im Citrixbetrieb meiner Anwendungen immer Read Only ...

Code: Alles auswählen

curdrive(HilfsTabellenVerzeichnis())
curdir(HilfsTabellenVerzeichnis())
wobei die Funktion HilfsTabellenVerzeichnis() in einer static das jeweilige Verzeichnis speichert.
Du könntest das Temporäre Verzeichnis natürlich auch auf ein Systemlaufwerk legen:

Code: Alles auswählen

HOMEDRIVE=C:
HOMEPATH=\Dokumente und Einstellungen\USERXXXX
TEMP=....
aber da dort auch die XppError.LOG und XppFatal.LOG landen wäre ein zentrales Laufwerk sinnvoller ;-)
Ab und an sehe ich in dem Verzeichnis nach ob Fehler protokolliert wurden ...

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 4:13
von AUGE_OHR
hi

suche mal nach "virtualstore". dieser Path wird verwendet wenn SET TMP oder SET TEMP gesetzt wurde und man keinen Schreibzugriff hat.

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 6:22
von Jan
Moin Hubert,

interessanter Ansatz. Ich dachte immer, PACK würde seine temporären Dateien in dem Verzeichnis ablegen, in dem auch die zu packenden dbf liegen. Das werde ich mal ausprobieren.

Zao shang hao Jimmy,

das Problem besteht in der Tat. Aber ich umgehe das, indem ich den User garnicht unter C:\Programme installieren lasse. Damit sollte das hier eigentlich nicht der Punkt sein. Ich habe mit einem der betroffenen Anwender gesprochen, der hat das Programm auf E:\ installiert. Virtualstore kann also hier nicht greifen.

Jan

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 10:06
von brandelh
Jan hat geschrieben:interessanter Ansatz. Ich dachte immer, PACK würde seine temporären Dateien in dem Verzeichnis ablegen, in dem auch die zu packenden dbf liegen. Das werde ich mal ausprobieren.
Ich weiß es nicht ;-) ... werden bei PACK überhaupt welche erzeugt :?
Ich dachte PACK arbeitet nur in der zu packenden ... :? :D

Auf jeden Fall wundert mich die Aussage, dass du KEINE Schreibrechte in dem Verzeichnis hast
in dem die zu packende DBF liegt ? 8)

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 11:43
von peternmb
Jan hat geschrieben:Und da liegt bei Vista und 7 das Problem. Denn wenn der User keine Admin-Rechte hat, dann knallt es. Weil offensichtlich keine Schreibrechte vorhanden sind.Jan
das kann ich so nicht bestätigen. Bei mir funktuioniert auch zap, pack, index, copy to usw. bei Vista/Windows 7 ohne Admin-Rechte.
Soweit ich das bisher feststellen konnte ist die einzige Funktion für die Admin-Rechte benötigt werden runshell.

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 12:52
von Jan
Peter,

es scheint darum zu gehen, daß das Programm mit Admin-Rechten installiert wurde. Also das Verzeichnis und alle Dateien auf Admin-Rechte geschrieben wurden. Und dann jemand ohne Admin-Rechte da mehr oder weniger ausgesperrt wird.

Jan

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 14:42
von peternmb
Jan hat geschrieben:Peter,

es scheint darum zu gehen, daß das Programm mit Admin-Rechten installiert wurde. Also das Verzeichnis und alle Dateien auf Admin-Rechte geschrieben wurden. Und dann jemand ohne Admin-Rechte da mehr oder weniger ausgesperrt wird.

Jan
schon klar, für die Programm-Installation werden auch bei mir Admin-Rechte benötigt.
Aber ein "normales" arbeiten sollte doch auch mit eingeschränkten Rechten möglich sein.

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 14:52
von Jan
Nein. Darum geht es doch hier. PACK erzeugt einen Laufzeitfehler. Das hier ist die Fehlermeldung des Users.
Fehlermeldung Pack.jpg
Fehlermeldung Pack.jpg (42.01 KiB) 7721 mal betrachtet
Jan

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 15:44
von peternmb
Du hast Recht, vermutlich liegt das Problem bei der Art der Installation. Wurde das Programm für alle Benutzer installiert?

Du verwendest doch Inno-Setup. Ich habe dafür mal einen Teil des Installationsscriptes gepostet, das die "Eigenheiten" von Vista/Windows 7 berücksichtigt. Damit funktioniert das Arbeiten (auch pack, index usw.) mit den installierten Programmen - zumindest bei mir - problemlos auch ohne Adminrechte. Die sind nur für die Programm-Installation notwendig.

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 15:48
von Jan
Ja, genau das benutze ich auch. Hab ich damals von Dir abgekupfert.

Jan

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 16:20
von peternmb
Jan hat geschrieben:Ja, genau das benutze ich auch. Hab ich damals von Dir abgekupfert.

Jan
dann ist es mit ehrlich gesagt ein Rätsel warum es bei mir funktioniert und bei dir nicht :?:
Seit ich das Setup so verwende (ca. 1 Jahr) gab es keinerlei Probleme mehr.

Wie hast du die Pfad-Zuweisung in deinem Progamm gelöst?
Könnte dann eigentlich dann nur noch daran liegen.

Re: Schreibrechte

Verfasst: Sa, 13. Feb 2010 17:08
von Jan
Ich wollte mal den Tipp von Hubert versuchen. Ansonsten arbeite ich immer mit absoluten Pfaden, aber das scheint ja bei PACK nicht zu greifen.

Jan

Re: Schreibrechte

Verfasst: So, 14. Feb 2010 9:19
von brandelh
Jan hat geschrieben:Ich wollte mal den Tipp von Hubert versuchen. Ansonsten arbeite ich immer mit absoluten Pfaden, aber das scheint ja bei PACK nicht zu greifen.
Jan
die Idee ist wirklich gut, bei temporären Dateien kann man aber leider keine Pfadnamen vorgeben.
Daher muss man das aktuelle Verzeichnis umstellen ;-)

PS: gibt es denn eine XppError.log oder XppFatal.log ?

Re: Schreibrechte

Verfasst: Mo, 15. Feb 2010 2:29
von AUGE_OHR
Jan hat geschrieben:...der hat das Programm auf E:\ installiert. Virtualstore kann also hier nicht greifen.
ich "denke" Virtualstore wird immer dann verwendet wenn SET TEMP gesetzt ist.

Für Cl*pper war aber SET TMP welches "wirkte"
Bei bestimmten Vorgängen, wie Sortieren und Indizieren, erstellt
CA-Clipper temporäre Dateien. Diese Dateien werden entweder im aktuellen
Verzeichnis oder in dem mit der Umgebungsvariablen TMP angegebenen
Verzeichnis abgelegt.

^bHinweis: ^bBei früheren CA-Clipper-Versionen wurden temporäre Dateien
in das aktuelle DOS-Verzeichnis oder, sofern angegeben, in das
Verzeichnis abgelegt, das über SET DEFAULT angegeben war.
Also beides TMP / TEMP (Lokal) setzten, das gilt auch für Xbase++ !!!

und da ist auch der 2nd Hinweis : SET DEFAULT auf ein R/W Verzeichniss legen