
ConnectionHet mooie van asp is het kunnen werken met een database. Alle gegevens op de site kunnen in een database worden gestopt en vervolgens met asp worden bewerkt, weergegeven etc. Voordat je de gegevens uit een database kunt halen, moet er eerst een verbinding met de database worden gelegd. Daarna kunnen de gegevens opgehaald worden en verder worden verwerkt.
Om een verbinding tot stand te brengen dient gebruik te worden gemaakt van ADO. Dit staat voor ActiveX Data Objects. ADO bevat 7 objecten en 4 sets. Om verbinding met een database te leggen dient gebruik te worden gemaakt van het object Connection.
Overzicht ADO objecten:
- Command
- Connection
- Error
- Field
- Parameter
- Property
- Recordset
De verbinding met de database verloopt via het object Connection. Het Connection object heeft de informatie op welke manier de verbinding moet worden gelegd en wat de bron is van de informatie. Let wel, er zijn meerdere mogelijkheden om een verbinding tot stand te brengen, afhankelijk van de soort database en soort verbinding. Hier wordt een standaard voorbeeld gebruikt.
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb"
Op dit moment weet de server dat er een object aangemaakt moet worden van ADO, dit gebeurt in de eerste regel. De server moet het object Connection aanmaken. In de tweede regel wordt de server verteld op welke manier de database moet worden benaderd en waar de database zich bevindt. Let op dat je na Data Source precies opgeeft waar de database staat. Vaak moeten er meerdere mappen aangegeven worden. De provider van de site kan je dit precies vertellen.
Als de verbinding openstaat neemt dit capaciteit van de server. Systeembronnen zijn bezet door de te maken verbinding. Als er geen verbinding wordt gesloten staan na verloop van tijd zoveel verbindingen open dat de server vastloopt en stopt te functioneren. Met andere woorden, elke verbinding moet standaard worden gesloten. Vergeet dit niet!! Het beste is om dit in een standaard script te gaan verwerken.
Con.Close
Set Con = Nothing
Zo simpel is het om een verbinding te sluiten. Je doet precies het tegenovergestelde van het aanmaken van de verbinding. En net als HTML moet je hier een bepaalde logica aanhouden. Als je meerdere tags gebruikt, moet je in omgekeerde richting de tags afsluiten. Zo werkt het ook bij het sluiten van de verbinding. Eerst zet je de open verbinding dicht door Con.Close en daarna sluit je het object met Set Con = Nothing. Als je de 4 regels goed bekijkt zul je de logica ontdekken.
Bijzonderheden
In dit voorbeeld wordt verbinding gemaakt met behulp van een DSN-less connectie. En het soort database is Access. Voor een SQL-Sever database geldt weer een ander soort connectie-string. Ook is het mogelijk om een MySql database te gebruiken met asp. Ook dan geldt weer een andere connectie-string. Controleer dus goed of de soort verbinding past bij het soort database.
Een DSN verbinding behandel ik hier niet. Ik gebruik zelf nooit een dergelijke verbinding. De provider zal altijd geld vragen voor het aanmaken van een DSN, wat een reden is om het niet te doen. Verder zijn typefouten funest voor het totstandomen van de verbinding. Bij een DSN-less connectie heb je dit volledig in eigen hand.
|