Database
De gebruikersinterface van Dreamweaver CC en hoger is vereenvoudigd. Daarom zijn sommige opties die in dit artikel worden beschreven, niet beschikbaar in Dreamweaver CC en hoger. Zie dit artikel voor meer informatie.
Een ASP-toepassing moet worden verbonden met een database via een ODBC-stuurprogramma (Open Database Connectivity) of een OLE DB-provider (Object Linking and Embedding). Het stuurprogramma of de provider fungeert als een interpreter die ervoor zorgt dat de webtoepassing kan communiceren met de database. In de volgende tabel ziet u een aantal stuurprogramma's die u kunt gebruiken met Microsoft Access-, Microsoft SQL Server- en Oracle-databases:
|
Database |
Databasestuurprogramma |
|
Microsoft Access |
Microsoft Access Driver (ODBC) Microsoft Jet Provider voor Access (OLE DB) |
|
Microsoft SQL Server |
Microsoft SQL Server Driver (ODBC) Microsoft SQL Server Provider (OLE DB) |
|
Oracle |
Microsoft Oracle Driver (ODBC) Oracle Provider voor OLE DB |
U kunt een DSN (Data Source Name, gegevensbronnaam) of een verbindingstekenreeks gebruiken voor het maken van een verbinding met de database. U moet een verbindingstekenreeks gebruiken als u een verbinding tot stand brengt met een OLE DB-provider of een ODBC-stuurprogramma dat niet op een Windows-systeem is geïnstalleerd.
Een DSN is een aanduiding van één woord, zoals mijnVerbinding, die naar de database verwijst en alle informatie bevat die nodig is voor het maken van een verbinding met die database. U definieert een DSN in Windows. U kunt een DSN gebruiken als u een verbinding maakt via een ODBC-stuurprogramma dat is geïnstalleerd op een Windows-systeem.
Een verbindingstekenreeks is een handmatig geprogrammeerde expressie waarmee de database wordt aangeduid en die de informatie bevat die nodig is om een verbinding met die database te maken, zoals wordt geïllustreerd in het volgende voorbeeld:
Driver={SQL Server};Server=Socrates;Database=AcmeMktg;
UID=wiley;PWD=roadrunner
u kunt een verbindingstekenreeks ook gebruiken als u een verbinding maakt via een ODBC-stuurprogramma dat is geïnstalleerd op een Windows-systeem, maar het gebruik van een DSN is eenvoudiger.
U kunt een OLE DB-provider gebruiken voor de communicatie met uw database (OLE DB is alleen beschikbaar op Windows NT, 2000 of XP). Wanneer u een rechtstreekse databasespecifieke OLE DB-verbinding maakt, kunt u de snelheid van uw verbinding verhogen door de ODBC-laag te verwijderen tussen uw webtoepassing en de database.
Als u geen OLE DB-provider opgeeft voor uw database, wordt de standaard OLE DB-provider voor ODBC-stuurprogramma's gebruikt voor communicatie met een ODBC-stuurprogramma. Dit stuurprogramma wordt vervolgens gebruikt voor de communicatie met de database.
Er bestaan verschillende OLE DB-providers voor de verschillende databases. U kunt OLE DB-providers verkrijgen voor Microsoft Access en SQL Server door de pakketten Microsoft Data Access Components (MDAC) 2.5 en 2.7 te downloaden en te installeren op de Windows-computer met IIS. U kunt de MDAC-pakketten gratis downloaden en installeren vanaf de Microsoft-website.
u moet wel eerst MDAC 2.5 installeren voordat u MDAC 2.7 installeert.
U kunt OLE DB-providers voor Oracle-databases downloaden vanaf de Oracle-website.
Maak in Dreamweaver een OLE DB-verbinding door een Provider-parameter op te nemen in een verbindingstekenreeks. Hier ziet u bijvoorbeeld een aantal parameters voor algemene OLE DB-providers voor respectievelijk Access-, SQL Server- en Oracle-databases:
Provider=Microsoft.Jet.OLEDB.4.0;... Provider=SQLOLEDB;... Provider=OraOLEDB;...
Zie de documentatie van de leverancier van uw provider of neem contact op met uw systeembeheerder voor de parameterwaarde van uw OLE DB-provider.
In een verbindingstekenreeks wordt alle informatie gecombineerd die uw webtoepassing nodig heeft voor het maken van een verbinding met een database. Deze tekenreeks wordt door Dreamweaver in de serverscripts van uw pagina ingevoegd zodat deze later door uw toepassingsserver kunnen worden verwerkt.
Een verbindingstekenreeks voor Microsoft Access- en SQL Server-databases bestaat uit een combinatie van de volgende parameters, gescheiden door puntkomma's:
Provider
De OLE DB-provider voor uw database. Hier ziet u bijvoorbeeld een aantal parameters voor algemene OLE DB-providers voor respectievelijk Access-, SQL Server- en Oracle-databases:
Provider=Microsoft.Jet.OLEDB.4.0;... Provider=SQLOLEDB;... Provider=OraOLEDB;...
Zie de documentatie van de leverancier van uw provider of neem contact op met uw systeembeheerder voor de parameterwaarde van uw OLE DB-provider.
Als u geen providerparameter opneemt, wordt de standaard OLE DB-provider voor ODBC gebruikt en moet u een geschikt ODBC-stuurprogramma opgeven voor uw database.
Driver
Het ODBC-stuurprogramma dat wordt gebruikt als u geen OLE DB-provider opgeeft voor uw database.
Server
De server die als host fungeert voor de SQL Server-database als uw webtoepassing op een andere server wordt uitgevoerd.
Database
De naam van een SQL Server-database.
DBQ
Het pad naar een bestandsdatabase, bijvoorbeeld een database die is gemaakt in Microsoft Access. Het pad is het pad op de server die als host fungeert voor het databasebestand.
UID
De gebruikersnaam.
PWD
Het wachtwoord van de gebruiker.
DSN
De naam van de gegevensbron, als u die gebruikt. Afhankelijk van de manier waarop u de DSN definieert op uw server, kunt u de overige parameters van de verbindingstekenreeks weglaten. DSN=Results kan bijvoorbeeld een geldige verbindingstekenreeks zijn als u de andere parameters definieert wanneer u de DSN maakt.
Verbindingstekenreeksen voor andere soorten databases gebruiken wellicht de hierboven vermelde parameters of hebben andere namen of toepassingen voor de parameters. Zie de documentatie van de leverancier van de database of raadpleeg uw systeembeheerder voor meer informatie.
Hier ziet u een voorbeeld van een verbindingstekenreeks waarmee een ODBC-verbinding tot stand wordt gebracht met een Access-database met de naam trees.mdb:
Driver={Microsoft Access Driver (*.mdb)};
DBQ=C:\Inetpub\wwwroot\Research\trees.mdb
Hier ziet u een voorbeeld van een verbindingstekenreeks waarmee een OLE DB-verbinding wordt gemaakt met een SQL Server-database met de naam Mothra die zich op een server bevindt met de naam Gojira:
Provider=SQLOLEDB;Server=Gojira;Database=Mothra;UID=jsmith; PWD=orlando8
In deze paragraaf wordt ervan uitgegaan dat u een ASP-toepassing hebt ingesteld. Tevens wordt verondersteld dat er een database is ingesteld op uw lokale computer of op een systeem waartoe u toegang hebt via een netwerk of FTP-server.
U kunt een gegevensbronnaam (DSN - Data Source Name) gebruiken om een ODBC-verbinding te maken tussen uw webtoepassing en uw database. Een DSN is een naam die alle parameters bevat die nodig zijn om een verbinding te maken met een specifieke database met behulp van een ODBC-stuurprogramma.
Aangezien u alleen een ODBC-stuurprogramma in een DSN kunt opgeven, moet u een verbindingstekenreeks gebruiken als u een OLE DB-provider wilt gebruiken.
U kunt een lokaal gedefinieerde DSN gebruiken om een databaseverbinding in Dreamweaver te maken.
Zie de volgende artikelen op de Microsoft-website voor instructies:
Voor een computer met Windows 2000, zie Microsoft Knowledge Base, artikel 300596 op http://support.microsoft.com/default.aspx?scid=kb;nl-nl;300596
Voor een computer met Windows XP, zie Microsoft Knowledge Base, artikel 305599 op http://support.microsoft.com/default.aspx?scid=kb;nl-nl;305599
Als u een lokale DSN wilt gebruiken maar deze nog niet hebt gedefinieerd, klikt u op Definiëren om ODBC-gegevensbronbeheer van Windows te openen.
In Microsoft Access kunt u geen schema of catalogus maken.
In deze paragraaf wordt ervan uitgegaan dat u een ASP-toepassing hebt ingesteld. Tevens wordt verondersteld dat er een database is ingesteld op uw lokale computer of op een systeem waartoe u toegang hebt via een netwerk of FTP-server.
Dreamweaver kan alleen server-DSN's ophalen die zijn gemaakt met ODBC-gegevensbronbeheer van Windows.
U kunt een DSN gebruiken die is gedefinieerd op een computer op afstand, om een databaseverbinding te maken in Dreamweaver. Als u een DSN op afstand wilt gebruiken, moet de DSN zijn gedefinieerd op de Windows-computer waarop uw toepassingsserver (waarschijnlijk IIS) wordt uitgevoerd.
Aangezien u alleen een ODBC-stuurprogramma in een DSN kunt opgeven, moet u een verbindingstekenreeks gebruiken als u een OLE DB-provider wilt gebruiken.
Zie de volgende artikelen op de Microsoft-website voor instructies:
Voor een computer op afstand met Windows 2000, zie Microsoft Knowledge Base, artikel 300596 op http://support.microsoft.com/default.aspx?scid=kb;nl-nl;300596
Voor een computer op afstand met Windows XP, zie Microsoft Knowledge Base, artikel 305599 op http://support.microsoft.com/default.aspx?scid=kb;nl-nl;305599
Macintosh-gebruikers kunnen deze stap overslaan omdat alle databaseverbindingen DSN's op de toepassingsserver gebruiken.
In Microsoft Access kunt u geen schema of catalogus maken.
U kunt een verbinding zonder DSN gebruiken om een ODBC- of OLE DB-verbinding te maken tussen uw webtoepassing en uw database. Voor het maken van dergelijke verbindingen gebruikt u een verbindingstekenreeks.
Als uw site wordt gehost door een ISP en u het volledige pad naar uw database niet weet, gebruikt u de methode MapPath van het ASP-serverobject in uw verbindingstekenreeks.
Macintosh-gebruikers kunnen deze stap overslaan omdat alle databaseverbindingen de toepassingsserver gebruiken.
In Microsoft Access kunt u geen schema of catalogus maken.
Als u een ASP-ontwikkelaar bent en u met een commerciële internetprovider (ISP) werkt, weet u vaak niet wat het fysieke pad is van de bestanden die u uploadt, waaronder uw databasebestand of -bestanden.
Als uw ISP geen DSN voor u definieert of als dit te lang duurt, moet u een andere manier bedenken om de verbinding met uw databasebestanden te maken. Eén mogelijkheid is het maken van een verbinding zonder DSN met een databasebestand. U kunt zo'n verbinding echter alleen definiëren als u het fysieke pad van het databasebestand kent op de server van de ISP.
U kunt het fysieke bestand van een databasebestand op een server verkrijgen met behulp van de MapPath-methode van het ASP-serverobject.
De technieken die in deze paragraaf worden besproken, zijn alleen van toepassing als uw database is gebaseerd op een bestand, zoals een Microsoft Access-database waarin gegevens worden opgeslagen in een.mdb-bestand.
Nadat u met behulp van Dreamweaver uw bestanden hebt geüpload naar een server op afstand, bevinden de bestanden zich in een map in de lokale bestandsmappenstructuur van de server. Zo zou op een server met Microsoft IIS het pad naar uw homepage er als volgt kunnen uitzien:
c:\Inetpub\wwwroot\accounts\users\jsmith\index.htm
Dit pad wordt het fysieke pad naar uw bestand genoemd.
De URL waarmee uw bestand wordt geopend, gebruikt het fysieke pad echter niet. In de URL wordt de naam van de server of het domein gebruikt, gevolgd door een virtueel pad, zoals in het volgende voorbeeld:
www.plutoserve.com/jsmith/index.htm
Het virtuele pad, /jsmith/index.htm, komt op de plaats van het fysieke pad, c:\Inetpub\wwwroot\accounts\users\jsmith\index.htm.
Als u met een ISP werkt, kent u niet altijd het fysieke pad naar de bestanden die u uploadt. ISP's geven u doorgaans een FTP-host, mogelijk een hostdirectory en een aanmeldnaam en wachtwoord. ISP's geven u ook een URL waarmee u uw pagina's kunt bekijken op het internet, bijvoorbeeld www.plutoserve.com/jsmith/.
Als u de URL kent, kunt u erachter komen wat het virtuele pad van het bestand is: het is het pad dat volgt op de server- of domeinnaam in een URL. Zodra u het virtuele pad weet, kunt u het fysieke pad van het bestand op de server verkrijgen met de methode MapPath.
Bij de MapPath-methode wordt het virtuele pad als een argument gebruikt en worden het fysieke pad van het bestand en de bestandsnaam verkregen. Dit is de syntaxis van de methode:
Server.MapPath("/virtualpath")
Als het virtuele pad van een bestand /jsmith/index.htm is, wordt met de volgende expressie het fysieke pad van het bestand verkregen:
Server.MapPath("/jsmith/index.htm")
U kunt als volgt met de methode MapPath experimenteren.
<%Response.Write(stringvariable)%>
Hieronder ziet u een voorbeeld:
<% Response.Write(Server.MapPath("/jsmith/index.htm")) %>
Op de pagina wordt het fysieke pad weergegeven van het bestand op de toepassingsserver, bijvoorbeeld:
c:\Inetpub\wwwroot\accounts\users\jsmith\index.htm
Voor meer informatie over de methode MapPath raadpleegt u de onlinedocumentatie die wordt geleverd bij Microsoft IIS.
Als u een verbindingstekenreeks zonder DSN wilt schrijven voor een databasebestand dat zich op een server op afstand bevindt, moet u weten wat het fysieke pad naar het bestand is. In het volgende voorbeeld ziet u een typische verbindingstekenreeks zonder DSN voor een Microsoft Access-database:
Driver={Microsoft Access Driver (*.mdb)};
DBQ=c:\Inetpub\wwwroot\accounts\users\jsmith\data\statistics.mdb
Als u het fysieke pad van uw bestanden op de externe server niet weet, kunt u het pad verkrijgen met de methode MapPath in uw verbindingstekenreeks.
Stel dat het virtuele pad naar uw Microsoft Access-database /jsmith/data/statistics.mdb is; de verbindingstekenreeks kan dan als volgt worden uitgedrukt als u VBScript gebruikt als scripttaal:
“Driver={Microsoft Access Driver (*.mdb)};DBQ=” & Server.MapPath¬
("/jsmith/data/statistics.mdb")
Het en-teken (&, ook wel ampersand genoemd) wordt gebruikt om twee tekenreeksen aan elkaar te smeden. De eerste tekenreeks wordt ingesloten door aanhalingstekens en de tweede wordt geretourneerd door de expressie Server.MapPath. Wanneer de twee tekenreeksen worden gecombineerd, ontstaat de volgende tekenreeks:
Driver={Microsoft Access Driver (*.mdb)};
DBQ=C:\Inetpub\wwwroot\accounts\users\jsmith\data\statistics.mdb
Als u JavaScript gebruikt, is de expressie identiek, alleen gebruikt u een plusteken (+) in plaats van het en-teken (&) om de twee tekenreeksen samen te voegen:
“Driver={Microsoft Access Driver (*.mdb)};DBQ=” + Server.MapPath¬
("/jsmith/data/statistics.mdb")
Macintosh-gebruikers kunnen deze stap overslaan omdat alle databaseverbindingen de toepassingsserver gebruiken.
Als het niet lukt om een verbinding tot stand te brengen, moet u de verbindingstekenreeks nog eens controleren of neemt u contact op met uw ISP om na te gaan of het databasestuurprogramma dat u hebt opgegeven in de verbindingstekenreeks, is geïnstalleerd op de server op afstand. Controleer ook of de ISP de meest recente versie heeft van het stuurprogramma. Een database in Microsoft Access 2000 werkt bijvoorbeeld niet met Microsoft Access Driver 3.5. U hebt Microsoft Access Driver 4.0 of recenter nodig.
Wanneer u een databaseverbinding maakt, wordt de verbindingsinformatie door Dreamweaver opgeslagen in een opnamebestand in de submap Connections in de lokale hoofdmap van de site. U kunt de verbindingsinformatie in het bestand ofwel met de hand ofwel als volgt bewerken of verwijderen.
Het opnamebestand wordt door Dreamweaver bijgewerkt. Met dit bestand worden alle pagina's in de site bijgewerkt die gebruikmaken van de verbinding.
U kunt voorkomen dat er fouten worden ontvangen na het verwijderen van een verbinding. Hiertoe werkt u elke recordset bij die de oude verbinding gebruikt, door op de naam van de recordset te dubbelklikken in het paneel Bindingen en een nieuwe verbinding te kiezen.
Aanmelden bij je account