AspGerman Wiki

Oftmals möchte (oder kann, darf) man keine System DSN (Datenquelle) anlegen, um auf eine Datenbank mit ADO zugreifen zu können. Dann kann man sich auf 2 Arten helfen: mit einer sogenannten DSN-less Connection oder dem Direktzugriff über den OLE DB Provider.

Bearbeiten

DSN-Less Connections

Diese sind im Grunde sehr leicht zu erstellen - man muß nur den DSN Namen durch den Namen des ODBC Treibers und den Datenbankpfad austauschen, zb für MS Access sieht das folgendermaßen aus:

strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="
strDSN = strDSN & Server.MapPath("/cgi-bin") & "\db.mdb;"
strDSN = strDSN & "FIL=MS Access;MaxBufferSize=512;PageTimeout=5;"
Conn.Open strDSN

Wie weiß ich welche Treiber installiert sind und was zwischen die geschweiften Klammern zu schreiben ist? Einfach in den ODBC Administrator zum Tab Treiber gehen - in der Spalte Name finden sich die Bezeichnungen die zwischen {} gehören!

Bearbeiten

Direktzugriff über OLE DB

OLE DB ist die Technogie, auf der ADO aufbaut - also wenn ich eine ODBC DSN mit ADO anspreche, dann wird die Datenbankverbindung tatsächlich über einen OLE DB Treiber ("Provider") aufgebaut - den OLE DB Provider für ODBC. Dieser verbindet dann zur Datenbank mit dem ODBC Treiber unter Zuhilfename des DSN.

Die OLE DB Provider gibt es für Access, SQL Server, Oracle und andere Datenbanken - also warum nicht direkt über OLE DB gehen und sich den Umweg (=Geschwindigkeitsverlust) über ODBC ersparen? Auch kein Problem, da ADO ja dafür gebaut wurde:

Set Conn = CreateObject("ADODB.Connection")
Conn.Provider="Microsoft.Jet.OLEDB.4.0"
Conn.Open Server.MapPath("/cgi-bin") & "\db.mdb;"

Die Frage, wie ein Provider heißt, ist nicht so einfach zu beantworten wie für ODBC Treiber. Aber hier ist eine Liste, die weiterhilft:

OLE DB ProviderFür Datenbank
MSDASQLODBC Provider
Microsoft.Jet.OLEDB.3.51Access 97
Microsoft.Jet.OLEDB.4.0Access 2000
SQLOLEDBSQL Server 7
MSDAORAOracle
ADsDSOObjectActive Directory
MSDataShapeData Shaping Provider
MSIMDBIn-Memory Database (Windows 2000)

ScrewTurn Wiki version 2.0.33. Some of the icons created by FamFamFam.