Betriebsysteme Windows 2000 Prof. MS Acess 2000. Webserver Apache 2.0
mittels PHP möchte ich über ODBC auf eine Access-DB (test.mdb)
zugreifen (über einen System-DSN-Eintrag). Die Access-DB liegt auf
einem anderen Recher <\\db-server\ordner\test.mdb>. Die
System-DSN-Eintrag habe ich über "ODBC Administrator" unter
Systemsteuerung gemacht <test_db>.
die schritte:
**************
1. Ich verbinde erstmal den freigegebene Verzeichnis
<\\db-server\ordner\> als Netzwerklaufwerk <M:> .
2. Dann habe ich den System-DSN-Eintrag über "ODBC Administrator"
gemacht <test_db>.
wenn ich mein php-skript ausführe bekomme ich folgende fehlermeldung.
Warning: odbc_connect(): SQL error: [Microsoft][ODBC Microsoft Access
Driver] Das Microsoft Jet-Datenbankmodul kann die Datei '(unbekannt)'
nicht öffnen. Sie ist bereits von einem anderen Benutzer exklusiv
geöffnet, oder Sie benötigen eine Berechtigung, um die Daten lesen zu
können., SQL state S1000 in SQLConnect in C:\Programme\Apache
Group\Apache2\htdocs\ubg\select.php on line 12
Fehler beim Datenbankaufruf
<?php
$dsn = "test_db";
$tabelle = "user";
$uid = "";
$pwd = "";
$conn = odbc_connect($dsn,$uid,$pwd)
or die ("Fehler beim Datenbankaufrufvvv");
$result = odbc_exec($conn, "SELECT * FROM $tabelle");
$i=1;
while (odbc_fetch_row($result, $i)){
echo $i. ". ". odbc_result($result, "kennung")."<br>";
$i++;
}
?>
wenn meine datenbank lokal auf dem webserver liegt klappt alles
wunderbar.
ich habe folgende sachen im internet gefunden und ausprobiert:
* Für den Zugriff werden keine Laufwerksbuchstaben unterstützt. In der
ODBC-Konfiguration kann man aber nur Laufwerksbuchstaben auswählen.
Also
geht man in die Registry mit regedt32 auf den Schlüssel
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC_INI dort findet sich im
entsprechenden
Link das Feld DBQ. Hier ändert man den Pfad von z. B.
"M:\test.mdb" auf "\\db-server\ordner\test.mdb".
* Als nächstes muß man noch den Dienst (bei mir Apache) der auf die
ODBC-Resource zugreift so konfigurieren, dass er mit einem
Netzwerkgültigen
Benutzernamen auf die Datenbank zugreift (per Default ist hier ein
lokaler
Systemnutzer hinterlegt).
-> so hier habe ich zwar sachen ausprobiert aber ich bin mir
nicht ganz sicher ob ich das richtig gemacht habe. ich habe unter
"Dienste -> Apache2 -> Eigenschaften" und Register "Anmelden" gewählt.
Hier habe ich dann unter "Anmelden als: " und "Diese Konto: " einen
Benutzer gewählt der die Administrationsrechte besitzt eingestellt.
das hat alles aber leider nichts gebracht.
ich wäre super dankbar für ihre vorschläge.
mittels PHP möchte ich über ODBC auf eine Access-DB (test.mdb)
zugreifen (über einen System-DSN-Eintrag). Die Access-DB liegt auf
einem anderen Recher <\\db-server\ordner\test.mdb>. Die
System-DSN-Eintrag habe ich über "ODBC Administrator" unter
Systemsteuerung gemacht <test_db>.
die schritte:
**************
1. Ich verbinde erstmal den freigegebene Verzeichnis
<\\db-server\ordner\> als Netzwerklaufwerk <M:> .
2. Dann habe ich den System-DSN-Eintrag über "ODBC Administrator"
gemacht <test_db>.
wenn ich mein php-skript ausführe bekomme ich folgende fehlermeldung.
Warning: odbc_connect(): SQL error: [Microsoft][ODBC Microsoft Access
Driver] Das Microsoft Jet-Datenbankmodul kann die Datei '(unbekannt)'
nicht öffnen. Sie ist bereits von einem anderen Benutzer exklusiv
geöffnet, oder Sie benötigen eine Berechtigung, um die Daten lesen zu
können., SQL state S1000 in SQLConnect in C:\Programme\Apache
Group\Apache2\htdocs\ubg\select.php on line 12
Fehler beim Datenbankaufruf
<?php
$dsn = "test_db";
$tabelle = "user";
$uid = "";
$pwd = "";
$conn = odbc_connect($dsn,$uid,$pwd)
or die ("Fehler beim Datenbankaufrufvvv");
$result = odbc_exec($conn, "SELECT * FROM $tabelle");
$i=1;
while (odbc_fetch_row($result, $i)){
echo $i. ". ". odbc_result($result, "kennung")."<br>";
$i++;
}
?>
wenn meine datenbank lokal auf dem webserver liegt klappt alles
wunderbar.
ich habe folgende sachen im internet gefunden und ausprobiert:
* Für den Zugriff werden keine Laufwerksbuchstaben unterstützt. In der
ODBC-Konfiguration kann man aber nur Laufwerksbuchstaben auswählen.
Also
geht man in die Registry mit regedt32 auf den Schlüssel
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC_INI dort findet sich im
entsprechenden
Link das Feld DBQ. Hier ändert man den Pfad von z. B.
"M:\test.mdb" auf "\\db-server\ordner\test.mdb".
* Als nächstes muß man noch den Dienst (bei mir Apache) der auf die
ODBC-Resource zugreift so konfigurieren, dass er mit einem
Netzwerkgültigen
Benutzernamen auf die Datenbank zugreift (per Default ist hier ein
lokaler
Systemnutzer hinterlegt).
-> so hier habe ich zwar sachen ausprobiert aber ich bin mir
nicht ganz sicher ob ich das richtig gemacht habe. ich habe unter
"Dienste -> Apache2 -> Eigenschaften" und Register "Anmelden" gewählt.
Hier habe ich dann unter "Anmelden als: " und "Diese Konto: " einen
Benutzer gewählt der die Administrationsrechte besitzt eingestellt.
das hat alles aber leider nichts gebracht.
ich wäre super dankbar für ihre vorschläge.
Kommentar