Eksemplet består af:
* tilfoj.asp - scriptet der læser værdierne fra filen "test.csv", og tilføjer dem til databasen ("db1.mdb")
* se.asp - scriptet henter alle værdierne fra databasen, og udskriver dem til skærmen
* test.csv - filen med værdierne.. struktur: "navn","hjemmeside","email adresse"
* db1.mdb - selve databasen
***** databasen:
* filnavn: "db1.mdb"
* placering: i samme mappe som asp filerne
* tabel - navn: "tblInfo"
* felt - navn: "navn", type: "tekst"
* felt - navn: "hjemmeside", type: "tekst"
* felt - navn: "email", type: "tekst"
***** tilfoj.asp:
<%
option explicit ' man undgår stavefejl, da *alle* variabler skal defines, med: dim variabelnavn
''' definer variablerne:
dim fs, f
dim tmp, arr, i
dim strNavn, strHjemmeside, strEmail
dim Conn, DSN, strSQL
' Her oprettet FSO objektet:
Set fs=Server.CreateObject("Scripting.FileSystemObject")
' Her åbnes vores CSV fil:
Set f=fs.OpenTextFile(Server.MapPath("test.csv"), 1)
tmp = ""
do while f.AtEndOfStream = false ' så længe at vi ikke er nået slutningen filen, udføres:
tmp = tmp & f.ReadLine & ";" ' tilføj linie fra filen, til variablen "tmp", og tilføj ";"
loop ' loop, dvs gentag
f.Close ' luk filen igen
' frigør objekterne (spar på ressourcerne)
Set f=Nothing
Set fs=Nothing
''''' Databasen
' Opret forbindelsen til database:
Set Conn = Server.CreateObject("ADODB.Connection")
' Vælg database-driveren:
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
' Vælg database-fil:
DSN = DSN & "DBQ=" & Server.MapPath("db1.mdb")
' Åben forbindelsen med vores data:
Conn.Open DSN
arr = split(tmp, ";") ' Vi bruger "Split" til at splitte "tmp" op, ved ";" tegnet:
for i = lbound(arr) to ubound(arr) - 1 ' denne loop starter ved arrays første værdi (LBound) og slutter ved sidste værdie (UBound), minus 1 (da den starter ved 0, og ikke 1)
tmp = arr(i) ' smid værdien "Hans Hansen,
http://www.hansen.dk,hans@hansen.dk" (osv..) over i tmp
strNavn = left(tmp, InStr(tmp, ",") - 1) ' indholdet af strNavn: fra venstre og til positionen af ",", minus 1 tegn
tmp = mid(tmp, len(strNavn)+2) ' indholdet af tmp: fra længden af indholdet af strNavn, plus 2 tegn, og resten af linien
strHjemmeside = left(tmp, InStr(tmp, ",") - 1) ' indholdet af strHjemmeside: fra venstre og til positionen af ",", minus 1 tegn
tmp = mid(tmp, len(strHjemmeside) + 2)' indholdet af tmp: fra længden af indholdet af strHjemmeside, plus 2 tegn, og resten af linien
strEmail = tmp ' den sidste værdi er bare resten af linien
' Vi tester værdier.. hvis du ikke har databasen endnu:
response.write "Navn: " & strNavn & "<br>Hjemmeside: " & strHjemmeside & "<br>Email: " & strEmail & "<br><br>"
' Gem i databasen (vores "indsættelelses"-kommando):
strSQL = "Insert into tblInfo ("
strSQL = strSQL & "navn, "
strSQL = strSQL & "hjemmeside, "
strSQL = strSQL & "email) "
strSQL = strSQL & "values( "
strSQL = strSQL & "'" & strNavn & "', "
strSQL = strSQL & "'" & strHjemmeside & "', "
strSQL = strSQL & "'" & strEmail & "')"
Conn.Execute(strSQL) ' udfør vores "indsættelses"-kommando
next
' Luk forbindelsen til database, og frigør:
Conn.Close
Set Conn = Nothing
response.write "<br><br><br>Alle værdierne er tilføjet"
end if
%>
***** se.asp:
<%
option explicit
dim Conn, DSN, rs, strSQL
' Opret forbindelsen til database:
Set Conn = Server.CreateObject("ADODB.Connection")
' Vælg database-driveren:
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
' Vælg database-fil:
DSN = DSN & "DBQ=" & Server.MapPath("db1.mdb")
' Åben forbindelsen med vores data:
Conn.Open DSN
strSQL = "Select * from tblInfo order by navn"
' Smid database poasterne over i "rs":
Set rs = Conn.Execute(strSQL)
if not(rs.bof or rs.eof) then ' hvis vi hverken er ved start eller ved slutningen, er der mindst 1 post -> udfør:
' Gennemløb Recordset (rs) med en løkke
Do while not rs.eof
' Udskriv værdien af kolonnen Fornavn og fødselsdato
response.write "Navn: " & rs("navn") & "<br>Hjemmeside: " & rs("hjemmeside") & "<br>Email: " & rs("email") & "<br><br>"
' Gå til næste Record i rs
rs.MoveNext
' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop
end if
' Luk forbindelsen til database, og frigør:
Conn.Close
Set Conn = Nothing
%>
***** test.csv (struktur: "navn","hjemmeside","email adresse"):
Hans Hansen,
http://www.hansen.dk,hans@hansen.dk
Jens Jensen,
http://www.jensen.dk,jens@jensen.dk
---
Hvis du har spørgsmål, er du meget velkommen til at stille dem.