Når man laver asp-dokumenter er det oplagt at bruge databaser til at gemme informationer i. I mit projekt har jeg brugt en Microsoft Access database med navnet db.mdb. I denne er der 2 tabeller. Den ene; information om brugere, den hedder users, den anden; de beskeder som bliver tilføjet til gæstebogen, den hedder gb.
For at kunne få adgang til en database fra et ASP script, må man have en databaseforbindelse. Der findes en del muligheder til at lave database forbindelser. Hvis man har mulighed for det skal man vælge ODBC da det er den sikreste og nemmeste metode når det først er sat op. Hvis man har sine asp-dokumenter liggende på et web-hotel skal man have sin hotel-udbyder til at oprette ODBC-datakilden (DSN – data source name). Men har man asp-dokumenterne liggende på sin egen computer, og hermede egen server, har man selv mulighed for at oprette ODBC-datakilder. Skal man bruge disse i et asp-script oprettes de på følgende måde: 1) Gå ind i start 2) Kontrolpanel og vælg Administration 3) Så skal man vælge Datakilder (ODBC) 4) Så går man ind under det faneblad der hedder System-DSN 5) Her vælger man tilføj. 6) Så vælger man driveren: Microsoft Access Driver (*.mdb) 7) Så skal man angive en sti til databasen. 8) Så har man mulighed for at bruge Brugernavn og Adgangskode for at øge sikkerheden til når man skal åbne en database forbindelse. Dette har jeg ikke valgt at gøre (dovenskab? Tjaa) 9) Sidst men ikke men skal man angive datakildens navn – data source name (DSN).
Så har man oprettet et ODBC-dsn.
Man kan også lave databaseforbindelserne DSN-less. Det vil sige at man ikke skal angive et data source navn, men derimod den fysiske placering af databasen på serveren samt driver. Det nemme ved at bruge ODBC-Dsn er at man slippe for at skulle angive både placering af database samt driver hver gang man skal åbne en databaseforbindelse, men blot behøver at angive datakildens navn – altså DSN.
inden jeg lukker vil jeg gerne sige at jeg har fået sup's til at virke, men jeg vil godt lige høre en ting mere... og jeg skal nok smide nogen flere point i spm hvis det er det
Hvordan for man den til at tjekke at det man indtaster ikke allerede er i db'en i forvejen?
Hey tjaz. Jeg havde godt nok et par fejl i den tidligere kode :) Men her har du det du spørger om. Det giver dig ihvertfald i ide til hvordan man kan gøre det. Igen skal alle sqlStrings stå på samme linie. Du finder ud af det :) Sup.
<!-- Siden som samler dine variabler op fra din form --> <% Firma_navn = TRIM( Request( "Firma_navn" ) ) Firma_mail = TRIM( Request( "Firma_mail" ) ) Firma_tlf = TRIM( Request( "Firma_tlf" ) )
Set Con = Server.CreateObject( "ADODB.Connection" ) Con.open "DSN=test"
<!-- Her checkes om der findes en post i firma tabellen --> <!-- med det samme firma navn som fra din indput form. --> <!-- Der checkes kun for firmanavnet med du kan bruge --> <!-- OR eller AND hvis du vil checke flere --> sqlString ="SELECT COUNT(Firma_navn) AS Antal FROM Firma WHERE Firma_navn LIKE '" & Firma_navn & "'"
SET RS = Con.Execute( sqlString ) WHILE NOT RS.EOF
<!-- Hvis antal er lig nul er der ikke nogen post med firmanavnet --> Antal = RS("Antal")
rs.MoveNext WEND
<!-- Her checkes om posten kan indsættes. men kun hvis antal er lig nul --> IF Antal ="0" THEN sqlString = "INSERT INTO Firma ( Firma_navn, Firma_mail, Firma_tlf ) VALUES ( '" & Firma_navn & "' , '" & Firma_mail & "' , '" & Firma_tlf & "')" Con.Execute sqlString END IF
Con.Close Set Con = Nothing
<!-- Fejlmeddelelse hvis firma navnet findes. --> IF ANTAL <> "0" THEN response.write "Der findes en post med det samme firma navn. bla bla." response.write "<INPUT TYPE=button VALUE=Tilbage onClick=history.back()>"
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.