För databaer använder vi ADO (Active data Objects). ADO kan hanteras på
många olika sätt. I dessa sidor presenteras en liten del av ADO. Så mycket att
vi klarar oss. Det antas att ni kan grunderna i SQL för att hantera data
Oftast gör man på detta sätt:
Först skapar vi en fil med namnet connection.asp som skall innehålla följande (OBS! En enda rad)
<%
Const strConn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\databaser\aspkurs.mdb; DriverId=25; FIL=MS Access; MaxBufferSize=8192; MaxScanRows=8; PageTimeout=5; SafeTransactions=0; Threads=100;"
%>
Allt med kursiv och grön stil kan bortlämnas om man snabbt vill testa och är nöjd med default värdena (som inte alltid är så lyckade)
Denna fil kan modifieras vid behov
- Ändra databasnamnet och katalogen enligt behov
- Har du mindre än 64 MB ram så minska MaxBufferSize från 8192 till 4096
- Räknar du med låg belastning kan Threads minskas
(Inställningarna tagna från tester med det ökända VapVal systemet = tål hög momentan belasting. Egentligen vet jag väl inte vad allt betyder, men skit samma, det fungerar!)
Man kan då skriva följande kod:
<!-- #include file="connection.asp" -->
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConn
Set RS = Conn.Execute("SELECT * FROM EXEMPELDATA")
Do While Not RS.EOF %>
<% =RS("aTEXT") %> <br>
<% RS.MoveNext
Loop
RS.Close
Conn.Close
%>
Förklaring till ovanstående program:
- Set Conn = Server.CreateObject("ADODB.Connection")
- Skapar ett objekt för databasens hantering. Detta betyder att vi efter detta kan använda
oss av Conn.metod eller egenskap för hanteringen av databasen
- Conn.Open strConn
- Vi säger att Conn objektet skall använda sig av databasen enligt de inställningar som finns i variabeln strConn
- Set RS = Conn.Execute("SELECT * FROM EXEMPELDATA")
- Vi säger vilken tabell vi vill ha med hjälp av en vanlig SQL SELECT sats.
- Do While Not RS.EOF
- Upprepa så länge vi har en post (EOF = End Of File)
- <% =RS("NAMN") %> <br>
- Vi sätter in det värde som fältet NAMN har i nuvarande post. Efter detta byter vi rad.
- RS.MoveNext
- Vi flyttar till nästa post (rad)
- Loop
- Vi upprepar ovastående så länge som vi inte har kommit till slutet av tabellen
- RS.Close
- När vi är färdiga så stänger vi vårt recordset
- Conn.Close
- Och avbryter kontakten till databasen
De centrala begreppen är således:
- Connection
- Upprätthåller kontakten till en databas. Kan jämföras med en Data kontroll i VB
- Recordset
- Upprätthåller kontakten till en tabell. Kan jämföras med en Data kontrollens Recordset property i VB.
Resultatet av ovanstående program blir:
Textrad 1
Textrad 2
Textrad 3
Textrad 4
Textrad 5
Textrad 6
Textrad 7
Textrad 8
Textrad 9
Textrad 10
Textrad 11
Textrad 12
Textrad 13
Textrad 14
Textrad 15
Textrad 16
Textrad 17
Textrad 18
Textrad 19
Textrad 20
Tid i sekunder att utföra koden: 0