Hallo allesamt,
ich habe eine postgreSQL-DB (brautechnik auf Server \\tec0) erstellt und möchte nun mit Hilfe von MS-Access als Frontend Daten von verschiedenen vernetzten Rechnern (\\tec1, \\lab) in diese Datenbank einpflegen. Ich habe hierzu eine MS-Accessdatei (brautechnik.mdb auf \\tec0) erstellt und die in der postgreSQL-DB angelegten Tabellen mittels Verknüpfung in die mdb-Datei eingebunden.
Die dsn-Datei auf dem Rechner (\\tec0), auf dem die postgreSQL-DB liegt, schaut folgendermaßen aus:
Zitat
[ODBC]
DRIVER=PostgreSQL Unicode
DATABASE=brautechnik
PORT=5433
SERVER=localhost
Auf dem Rechner \\tec0 funktioniert der Zugriff auf die PostgreSQL-DB. Wenn ich nun aber auf einen der anderen Rechner die mdb-Datei auf \\tec0 starte, dann erfolgt folgende Fehlermeldung:
>> ODBC-Verbindung zu {PostgreSQL-ODBC-Driver {UniCode}}localhost fehlgeschlagen. <<
Und hier beginnt nun der für mich undurchschaubare Teil:
1. Muß denn auf jedem Rechner, auf dem ich auf die PostgreSQL-DB zugreifen will, diese MS-Access.mdb liegen oder kann ich durch eine entsprechende Freigabe auf dem "Server" \\tec0 von den anderen Rechnern Zugriff auf die DB erhalten.
2. Muß für jede der Rechner (tec1, lab) eine dsn-Datei angelegt werden ?
3.) Welcher Serveradresse muß in meinem Fall stehen? - localhost ja eigentlich nur, wenn ich von dem gleichen Rechner auf die DB zugreife, auf dem diese sich auch befindet.
4.) Kann ich den Server auch mittels Hostnamen ansprechen, z.B: "\\tec0" ?
In der postgresql.conf habe ich den Parameter listen_addresses = '*' gesetzt, sowie in der
Datei pg_hba.conf ist folgende Zeile unter IPV4 local connections hinzugefügt:
host all all 0.0.0.0/24 md5
-> dies sollte nur zum Testen als Einstellung dienen - der Zugriff wird dann später noch eingeschränkt.
Was Netzwerke und darüber verteilte Zugriffe auf DB´s und Programme anbelangt bin ich vollkommener Newbi, deswegen auch dies Unverständnis.
Vielen Dank im Voraus für die Hilfe.
Zitat von: tomgom am Februar 21, 2012, 15:17:17
>> ODBC-Verbindung zu {PostgreSQL-ODBC-Driver {UniCode}}localhost fehlgeschlagen. <<
Die ODBC-Verbindung muß auf jedem Client-PC eingerichtet sein. ODBC ist eine Brücke zwischen der lokalen Anwendung und der Datenbank. Sprich, das lokale Access spricht mit ODBC und OBDC spricht wiederum mit der Datenbank.
Das ließe sich eigentlich schon aus der Fehlermeldung "Verbindung zu ... localhost fehlgeschlagen" herauslesen, daß das mit dem Server nichts zu tun hat.
Danke für die Antwort,
seltsamerweise funktioniert ja der Zugriff auf die PostgrSQL-DB vom PC aus, auf dem die Datenbank installiert ist, von den anderen PC´s jedoch nicht.
Wenn ich PGAdminIII starte und mir die die Eigenschaften des Servers hole, dann steht unter
Zitat
hostname: localhost
host-IP: 127.0.0.1
Müsste im Falle eines Netzzugrifffes auf die Datenbank nicht die entsprechende ServerIP bzw. der Servername (\\tec0) stehen, damit andere Rechner die Datenbank finden ?
Zitat von: tomgom am Februar 22, 2012, 08:04:33
Müsste im Falle eines Netzzugrifffes auf die Datenbank nicht die entsprechende ServerIP bzw. der Servername (\\tec0) stehen, damit andere Rechner die Datenbank finden ?
Ich würde ersteinmal sicherstellen, daß auf den Client-PCs der ODBC-Treiber für PostGre da ist. Anschließend auf jedem Client die ODBC-Verbindung zum Server einrichten, der Pfad ist natürlich der Server und nicht localhost. Diese Einstellungen werden in der Windows-Systemsteuerung gemacht.
Anschließend die Verbindung vom Access zum ODBC sollte kein Problem mehr sein.