Geplaatst op: 15-5-2002 Aantal keer bekeken: 799229 ASP en databases
Dit hoofdstuk gaat over ASP en databases. De database kan gevuld worden met
gegevens die vervolgens met een ASP pagina worden opgehaald. De opgehaalde gegevens
kunnen vervolgens in een HTML pagina worden geplaatst en aan de gebruiker getoond
worden.
In dit hoofdstuk zal er wat verteld worden over ASP en databases in het algemeen,
waar je op moet letten en de database connectie. Verder staan er voorbeelden
van code om gegevens uit de database te halen, ze te wijzigen en te verwijderen.
ASP en databases Wat heb je allemaal nodig als je de website wilt koppelen aan een database.
Allereerst heb je natuurlijk een database nodig. Deze database kan bijvoorbeeld
een Ms Access, MySQL of Ms SQL database zijn. De Access en MySQL database kunnen
gratis gebruikt worden (mits je het pakket Access niet hoeft aan te schaffen),
Ms SQL is een erg duur pakket. Dit pakket is dus niet interessant of nodig voor
kleine websites. Werken met Access is het makkelijkst. Je kan hierbij de database
in een eenvoudig programma maken. MySQL
is een gratis database die vooral in combinatie met PHP
op Unix/Linux wordt gebruikt. Er zijn ook Windows versies van MySQL en die kunnen
perfect met ASP samenwerken. MySQL databases zijn sneller en kunnen meer gebruikers
aan dan Access databases. Het nadeel van MySQL is dat je er meer kennis voor
nodig hebt om het geheel werkend te krijgen.
Als de database klaar is, dan moet er een verbinding worden gelegd tussen de
ASP pagina en de database. Dit is de connectiestring. Dit kan met of
zonder DSN (Data Source Name). Een DSN wordt op de webserver geïnstalleerd.
De DSN is de verbinding naar de datasource, de database. Wanneer je geen toegang
hebt tot de computer, dan moet er een DSN worden aangemaakt naar de database.
Ook is het mogelijk om verbinding te maken met de database zonder DSN. Op deze
manier is de website ook niet afhankelijk van de webserver waar hij op draait.
Als er een verbinding met de database is gemaakt dan kan er van alles met de
gegevens in de database gebeuren. Je kan gegevens toevoegen, verwijderen, of
wijzigen. Dit kan bijvoorbeeld gedaan worden met SQL, maar ook met ASP code.
De gegevens die opgevraagd worden met een SQL query worden opgeslagen in een
recordset. Dit is een kleine tabel waarin gegevens opgeslagen kunnen
worden.
De gegevens in de recordset kunnen vervolgens in de ASP pagina verwerkt worden
tot een HTML pagina die naar de gebruiker gestuurd wordt. De gebruiker merkt
zelf niets van de database achter de website. Voor hem of haar is het gewoon
een "standaard" website.
Wanneer een gebruiker de website opvraagt gebeurt dus het volgende: de ASP
pagina wordt door de server geladen. Hierin staat een connectiestring naar de
database. De database wordt hiermee geopend. Er wordt vervolgens een query op
de database gedaan en de gegevens die hieruit voortkomen worden in een recordset
geplaatst. De gegevens uit de recordset worden tussen de HTML codes geplaatst
en dit wordt naar de gebruiker gestuurd.
Waar moet op gelet worden?
Een belangrijk punt waarop gelet moet worden is er maar maximaal 63 gebruikers
tegelijkertijd verbonden kunnen zijn met een Access database. Bij kleinere websites
zal dit aantal niet snel overschreden worden, maar als de website groeit en
er steeds meer bezoekers komen kan dit mogelijk een probleem opleveren. Met
een grote website wordt er een website waar meer dan 40/50 bezoekers tegelijkertijd
op de website bezig zijn. Dit betekent dus een website met honderden bezoekers
per dag.
Om ervoor te zorgen dat dit geen probleem oplevert, is het belangrijk dat de
ASP pagina's goed in elkaar zitten. De verbinding met de database moet zo snel
mogelijk worden verbroken. Als je dus klaar bent met de database dan moet je
er voor zorgen dat de verbinding zo snel mogelijk verbroken wordt. Als je dit
in je achterhoofd houdt bij het maken van de website, is de database ook te
gebruiken als het aantal bezoekers groeit.
Niet alleen de verbinding, maar alle objecten moeten na gebruik leeggemaakt
worden. Wanneer dit gebeurt dan wordt het geheugen hiervan weer vrijgemaakt
en zorg je ervoor dat de server niet "vol" raakt.
Het laatste zeer belangrijke item is dat de database NIET binnen de
websitestructuur geplaatst moet worden. De reden hiervan is dat de gebruiker
anders de complete database kan downloaden. Je begrijpt dat dit niet de bedoeling
is. De database moet in een directory (map) worden geplaatst die niet vanuit
het internet te benaderen is. Dit kan bijvoorbeeld door naast de "www"
directory, waar de webpagina's in staan, een database directory te maken met
de database. Op het internet kunnen de gebruikers dan dus nooit! bij de database
komen.
Ik heb de les Gegevens wijzigen gevolgd;
hij werkt wel op mijn site, maar er komt een nieuwe record bij met de gewijzigde gegevens. De oude record blijft staan. Is dit juist en wat moet ik dan anders doen.
Heb geprobeerd een pagina te schrijven waar mensen records kunnen schrappen uit een access-db. Alleen krijg ik steeds opnieuw dezelfde fout nl.
Provider error '80040e4d'
Authentication failed.
/verwijder.asp, line 17
Kent iemand de oorzaak hiervan?(de db is niet beveiligd)
als ik een count query heb, bijvoorbeeld
SELECT COUNT(*)
FROM personeel
WHERE geslacht = 'v'
en ik de informatie wil weer geven die uit deze query komt, hoe heet de kolom dan?
want ik heb al geprobeer:
SELECT COUNT(*) as aantal
FROM personeel
WHERE geslacht = 'v'
en dan DTB_Rs("aantal")
maar dan krijg ik een fout melding heeft iemand hier voor een oplossing?