Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Wo liegt der Fehler hier im Script ??????
Frage
Also ich habe mir heute mal wieder ein ASP-Script runtergezogen und es will leider nicht so wie ich will.
Habe die Datenbank in Frontpage reingezogen und die Verbindung "ubb" genannt
hier der auszug aus der global.asa:
--Project Data Connection
Application("ubb_ConnectionString") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=URL=db/ubbs.mdb"
FrontPage_UrlVars(4) = "ubb_ConnectionString"
Application("ubb_ConnectionTimeout") = 15
Application("ubb_CommandTimeout") = 30
Application("ubb_CursorLocation") = 3
Application("ubb_RuntimeUserName") = ""
Application("ubb_RuntimePassword") = ""
So sieht die fehlermeldung aus, wenn ich die default.asp aufrufen möchte:
Microsoft OLE DB Provider for ODBC Drivers error 80004005
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/djnet/Forum_User/default.asp, line 11
Hier nun also die Zeile 11 aus der asp-Datei:
set my_conn= Server.CreateObject("ADODB.Connection")
my_Conn.open ConnString
Und zum schluß noch ein paar zeilen aus der confic.inc
ConnString = "ubb_ConnectionString"
ConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=db\ubbs.mdb"
Ich versteh nicht so ganz was ich falsch gemacht haben soll. Vielleicht habt Ihr ne Idee oder findet den Fehler oben. Danke im voraus
Antwort 1 von Karl
Hallo teccer
Ist doch ganz einfach: Die Definition in der Global.asa unter
Sub Application_OnStart
liest sich gut, sie mag sogar richtig sein, das kann ich nicht beurteilen, der Codeschnippsel ist zu dürftig..
Nur was hat diese Definition mit der tatsächlichen Open-Procedure zu tun?
Nichts, denn Du weist der Variblen
ConnString erst "ubb_ConnectionString" zu
{ConnString = "ubb_ConnectionString"}
dann überschreibst Du die Variable wieder!
{ConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=db\ubbs.mdb"}
Mit dieser Konfiguration öffnest Du die Connection dann wirklich! So kann der ODBC-Treiber die Datenbank aber NIE finden!
Wenn Du schon DBQ statt einer DSN einsetzt, dann richtig !
Wenn Du MDAC Version >=2.5 benutzt, dann
Provider=MSDASQL.1;Connect Timeout=15;Extended Properties=DBQ=" & Server.MapPath("/verzeicnis/datenbank.mdb") & ";DefaultDir=" & Server.MapPath("/verzeichnis") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;"
Treiber Version 2
wenn die DB in einem Unterverzeichnis steht
Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\Unterverzeichnis") & "\datenbank.mdb;
wenn die DB im Hauprverzeichnis steht
DBQ=" & Server.Mappath("datenbank.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};
oder Du gibst das Verzeichnis voll an
Driver={Microsoft Access Driver (*.mdb)}; DBQ="D:\Webdaten\irgendeinverzeichnis\nocheinverzechnis\datenbank.mdb;
Nur dann kann die Datenbank auch gefunden werden.
alles klar?
Karl
Ist doch ganz einfach: Die Definition in der Global.asa unter
Sub Application_OnStart
liest sich gut, sie mag sogar richtig sein, das kann ich nicht beurteilen, der Codeschnippsel ist zu dürftig..
Nur was hat diese Definition mit der tatsächlichen Open-Procedure zu tun?
Nichts, denn Du weist der Variblen
ConnString erst "ubb_ConnectionString" zu
{ConnString = "ubb_ConnectionString"}
dann überschreibst Du die Variable wieder!
{ConnString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=db\ubbs.mdb"}
Mit dieser Konfiguration öffnest Du die Connection dann wirklich! So kann der ODBC-Treiber die Datenbank aber NIE finden!
Wenn Du schon DBQ statt einer DSN einsetzt, dann richtig !
Wenn Du MDAC Version >=2.5 benutzt, dann
Provider=MSDASQL.1;Connect Timeout=15;Extended Properties=DBQ=" & Server.MapPath("/verzeicnis/datenbank.mdb") & ";DefaultDir=" & Server.MapPath("/verzeichnis") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;"
Treiber Version 2
wenn die DB in einem Unterverzeichnis steht
Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\Unterverzeichnis") & "\datenbank.mdb;
wenn die DB im Hauprverzeichnis steht
DBQ=" & Server.Mappath("datenbank.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};
oder Du gibst das Verzeichnis voll an
Driver={Microsoft Access Driver (*.mdb)}; DBQ="D:\Webdaten\irgendeinverzeichnis\nocheinverzechnis\datenbank.mdb;
Nur dann kann die Datenbank auch gefunden werden.
alles klar?
Karl

