Discussion:
Firebird auf Win7 Problem
(zu alt für eine Antwort)
Andreas Kanthak
2013-11-15 08:16:46 UTC
Permalink
Hallo zusammen,

ich habe ein Problem bei dem ihr mir vielleicht weiterhelfen könnt.
Meine Application ist schon sehr lange auf dem Markt und verwendet eine Firebird Datenbank.
Wenn ich die Software nun unter Windows 7 installiere, kann ich nicht auf die den DB Server und damit auch nicht auf meine DB
zugreifen. Das ganze unter WinXP installiert läuft ohne Probleme. Ich installiere unter beiden Systemen die gleichen Binaries.
Gibt es irgendwas zu beachten, wenn man Firebird auf WIn7 verwenden will?

Liebe Grüße
Andreas Kanthak
Andreas Kardin
2013-11-15 09:08:30 UTC
Permalink
[...] Wenn ich die Software nun unter Windows 7
installiere, kann ich nicht auf die den DB Server und damit auch nicht
auf meine DB zugreifen. Das ganze unter WinXP installiert läuft ohne
Probleme. [...]
In welchen Ordnern befinden sich die Applikationen und die Binaries?

Achtung! Unter Windows 7 ist die Rechtevergabe in C:\Programme
restrikitiver und dann kommt noch seit Vista Microsofts Zauberei mit dem
VirtualStore hinzu. D.h. Schreibzugriffe auf das Applikationsverzeichnis
(unter C:\Programme\<DeineApp> werden in den VirtualStore umgelenkt und das
für jeden Benutzer. Das kann ziemliche Verwirrung nach sich ziehen, wenn
Prozesse (z.B. Services, DB-Treiber) unter verschiedenen Benutzerkontexten
auf Dateien in so einem Verzeichnis zugreifen. Die bekommen dann jeweils
nur Ihre virtuelle Version der Dateien zu Gesicht.

Vielleicht hilf Dir das.

Gruss
--
Andreas Kardin - Software Developer
- E-Mail : ***@mephzara.com
- Web : www.mephzara.com
Andreas Kanthak
2013-11-16 11:37:11 UTC
Permalink
Hallo Andreas,
Post by Andreas Kardin
In welchen Ordnern befinden sich die Applikationen und die Binaries?
die App befindet sich in Programme(x32), die Daten und die DB im AppData-Verzeichnis (unter Win7 in ProgrammData). Aber wenn ich
alles
in C:\Test\ installiere funktioniert es auch nicht. Selbst IBExpert kann darauf nicht zugreifen, egal wo die DB ist. Nur ein drittes
Tool (ähnlich wie IBExpert, nur weiss ich den Namen gerade nicht mehr), kann ohne Probleme meine DB öffnen. Ich bin etwas ratlos.


Gruß
Andreas
Martin Hentrich
2013-11-16 13:41:24 UTC
Permalink
On Sat, 16 Nov 2013 12:37:11 +0100, "Andreas Kanthak"
Post by Andreas Kanthak
in C:\Test\ installiere funktioniert es auch nicht.
Was bedeutet "funktioniert es auch nicht"?

hast du mal dem Programm über die Icon-Einstellung
Eigenschaften/Kompatibilität ein Häkchen spendiert "Programm als ein
Administrator ausführen". Ggf. kannst du da auch einen
Kompatibilitätsmodus für Windows XP auswählen.

Martin
--
Sie müssen sich keine Notizen machen.
Wenn etwas wichtig ist, werden Sie
sich daran erinnern. [Steve Jobs]
Andreas Kanthak
2013-11-16 17:16:02 UTC
Permalink
Hallo Martin,
Post by Martin Hentrich
Was bedeutet "funktioniert es auch nicht"?
na ja, die Datenbankdatei kann nicht geöffnet werden.
Post by Martin Hentrich
Eigenschaften/Kompatibilität ein Häkchen spendiert "Programm als ein
Administrator ausführen". Ggf. kannst du da auch einen
Kompatibilitätsmodus für Windows XP auswählen.
Alles schon probiert, bisher ohne Erfolg.

Gruß
Andreas
l***@delphi-tutorials.de
2013-11-16 19:47:15 UTC
Permalink
Hallo,
Post by Andreas Kanthak
Alles schon probiert, bisher ohne Erfolg.
auch schon mal anstelle des "lokalen" Connectionstring einen Remote anzugeben:

localhost:<DBPfad>

Das sollte dann eigentlich funktionieren
Achim Kalwa
2013-11-19 10:13:27 UTC
Permalink
Hallo Andreas,
Post by Andreas Kanthak
Post by Martin Hentrich
Was bedeutet "funktioniert es auch nicht"?
na ja, die Datenbankdatei kann nicht geöffnet werden.
Die genaue Fehlermeldung wäre hilfreich!

Meine Vermutung:
Du verwendest das "local"-Protokoll für den Zugriff auf die Datenbank,
also einfach nur den Pfad zur lokalen Datenbank als Connect-String:
'C:\ProgramData\Meine\Datenbank.fbd'.

Das funktioniert seit Windows Vista nicht mehr, weil Microsoft den
Diensten die Fähigkeit zur Interaktion mit Desktop-Anwendung abgeschalet
hat. Das bedeutet: Dienste (hier: Firebird) können nicht mehr direkt mit
einer Anwendung kommunizieren.

Ab Windows Vista kann die Kommunikation mit dem Firebird-Server nur noch
über eines der Netzwerk-Protokolle erfolgen, selbst dann wenn Anwendung
und Firebird-Datenbank auf dem selben Rechner liegen.

Ändere Deinen Connect-String in
'localhost:C:\ProgramData\Meine\Datenbank.fdb'

Durch diese Syntax wird das TCP/IP-Protokoll verwendet. Damit
funktioniert der Zugriff auf die Firebird-Datenbank sowohl unter Windows
XP als auch unter Vista, 7 und 8.

Falls das wider erwarten nicht funktioniert:
Bitte die genaue Fehlermeldung posten!

HTH
Achim
Andreas Kanthak
2013-11-22 10:56:36 UTC
Permalink
Hallo Achim und alle, die mir geantwortet haben.

ich hatte als als Verbindung bisher folgende Connect-String:

Params.Add('USER NAME=SYSDBA');
Params.Add('PASSWORD=masterkey');
Params.Add('CHARACTER SET=ASCII');
Params.Add('SQL DIALECT=3');
Params.Add('PAGE SIZE=4096');
Params.Add('PATH=' + GetEventSource);
Params.Add('PROTOCOL=TCP/IP');
Params.Add('SERVER=localhost')

Dies funktionierte nicht auf Win7.
ich habe das jetzt wie folgt geändert:

Params.Add('USER NAME=SYSDBA');
Params.Add('PASSWORD=masterkey');
Params.Add('CHARACTER SET=ASCII');
Params.Add('SQL DIALECT=3');
Params.Add('PAGE SIZE=4096');
Params.Add('PATH=' + GetEventSource);
Params.Add('PROTOCOL=LOCAL');
Params.Add('SERVER=').

In der Firebird.conf musste ich noch den Parameter IPCName aktivieren und mit Global\ prefixen. Nun funktioniert es auf Win7
tadellos.
Auch auf XP funktioniert es weiterhin ohne Probleme.
Danke für eure Tips und Hinweise.

Liebe Grüße
Andreas
Ulli Maier
2013-11-17 07:32:54 UTC
Permalink
Hi Andreas,

bei mir war damals das Problem, dass FB unter Documents and
Settings\AllUsers\ApplicationData ein Verzeichnis angelegt hat, welches nur
ReadOnly-Rechte hat. Nachdem ich mich nicht mehr exakt erinnere, vielleicht
wurde dieses Verzeichnis auch gar nicht angelegt?
Wie auch immer: prüfen ob existent und mit passenden Rechten.

Admin-Rechte werden übrigens nicht benötigt. Allerdings muss der Account,
unter dem der DB-Service läuft, auf das o.g. Verzeichnis, das
FB-Prog-Verzeichnis und die DB schreibenden Zugriff haben.
Noch 'ne Idee: In der Alias.conf kann man sich auch selber aussperren.

Good luck!
Post by Andreas Kanthak
Hallo zusammen,
ich habe ein Problem bei dem ihr mir vielleicht weiterhelfen könnt.
Meine Application ist schon sehr lange auf dem Markt und verwendet eine Firebird Datenbank.
Wenn ich die Software nun unter Windows 7 installiere, kann ich nicht
auf die den DB Server und damit auch nicht auf meine DB
zugreifen. Das ganze unter WinXP installiert läuft ohne Probleme. Ich
installiere unter beiden Systemen die gleichen Binaries.
Gibt es irgendwas zu beachten, wenn man Firebird auf WIn7 verwenden will?
Liebe Grüße
Andreas Kanthak
Lesen Sie weiter auf narkive:
Loading...