Holger: ADODB-Connection

Guten Morgen,

habe so früh am morgen schon ein ernstes Problem: ;-) kann mir jemand erklären, wie in dieser global.asa die Authentifizierung abläuft?

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnEnd
END SUB
</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
   ' DB-Account
   Application("DB")   = "dev"    ' ODBC-Connection auf dem Server
   Application("User") = "discon_dev" ' MSSQL-Server User
   Application("Pwd")  = "4discon_dev" ' Password
   Application("UserLoggedOn") = 0
End Sub
</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnStart
session("user") = request.servervariables("AUTH_USER")
Session.Timeout=300
END SUB
</SCRIPT>

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnEnd
END SUB
</SCRIPT>

Wenn ich eine ADODB-Conenction aufbauen möchte, kommt der typische Fehler:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Kann das daran liegen, dass ich auf dem neuen Server zuerst die AUTH_USER einstellen muss?

Vielen dank,
Holger

  1. Moin, ernstes Problem :-)

    AUTH_USER für Websites und Authentifizierung bei einem Datenbankserver sind zwei völlig unterschiedliche Paar Schuhe.

    Du machst dich mit dem falschen Fehler verrückt, obwohl dir der richtige angezeigt wird:

    Wenn ich eine ADODB-Conenction aufbauen möchte, kommt der typische Fehler:
    Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

    im ODBC-Datenquellen-Manager von deinem Webserver (Systemsteuerung -> Verwaltung -> ODBC-Datenquellen) gibt es keinen Eintrag "dev"

    was ist bei dir die ODBC-connection? wie es aussieht ist es die ODBC-Verbindungsbeschreibung, die du dann mit .open als Argument verwendest. diese sollte auf dem Webserver vorhanden sein, auf dem DB-Server nutzt sie nichts, es sei denn MSSQL und Webserver sind eine physikalische Einheit

    Also leg solch ein DSN (data source name) auf deinem webserver an ... oder noch besser: warum erst ODBC dazwischenschalten. Mach die Verbindungseinstellungen mit dem SQL OleDB Treiber:

    set cn = createObject("ADODB.Connection")
    cn_string = "Provider=sqloledb;Data Source=ServerName;Initial Catalog=DatabaseName;"
    cn.open cn_string,userName,userPassword

    .....

    warum legst du die Verbindung nicht auch gleich im Application Scope an?

    dann wird nicht mit jedem User * jeder ASP seite die Connection aufgebaut und wieder abgebaut

    Hoffe, das löst deine Probleme
    Tschau, tschüß,
    Frank