Asp Cursus 8/13: Connection
|
|
Het 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 tot stand komen van de verbinding. Bij een DSN-less connectie heb je dit volledig
in eigen hand.
Ga dan verder met Recordset!
|