Avatar billede kkd Nybegynder
04. maj 2003 - 10:58 Der er 3 kommentarer og
1 løsning

Lille scriptfejl

Efterfølgende script, skal fjerne en post fra en database, hvis dataene indtastet i en form stemmer overens med dataene i databasen. Jet har prøvet at lave en meddelelse, der skal fortælle om de er fjernet eller ej - altså tjekke om dataene stemmer overns, og give en besked derfra.

Men det virker ikke, hvad har jeg gjort forkert?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/mailliste.mdb")
Conn.Open DSN

strSQL = "DELETE FROM mailliste WHERE Navn='" & Request.Form("navn2") & "' AND Email='" & Request.Form("email2") & "'"

Conn.Execute(strSQL)
if (rs.bof or rs.eof) then
    Response.Write "Der er ikke overenstemmelse mellem navn og e-mail"
else
    Response.write "Du er nu fjernet fra maillisten"
end if

Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
04. maj 2003 - 11:04 #1
1. ting: Du sætter ikke  Set rs =  foran Conn.Execute så du får slet ikke noget recordset tilbage.
2. ting: Man kan ikke få feedback på DELETE andet at hvis det ikke går galt så det nok slettet.

Hvis du vil lave et tjek må du tjekke inden om den man forsøger at slette findes sådan her:



strSQL = "SELECT navn FROM mailliste WHERE Navn='" & Request.Form("navn2") & "' AND Email='" & Request.Form("email2") & "'"

Set rs = Conn.Execute(strSQL)
if (rs.bof or rs.eof) then
    Response.Write "Der er ikke overenstemmelse mellem navn og e-mail"
else
    strSQL = "DELETE FROM mailliste WHERE Navn='" & Request.Form("navn2") & "' AND Email='" & Request.Form("email2") & "'"

    Conn.Execute (strSQL)

    Response.write "Du er nu fjernet fra maillisten"
end if

Conn.Close
Set Conn = Nothing
%>
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 11:13 #2
Du skal vist bare (utestet)

Conn.Execute strSQL,rows
if rows=0 then

resten er sikkert godt nok
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 11:18 #3
...og havde du brugt jetdriveren (kan anbefales), skulle
du kunne lave denne kommando bagefter

Set rs = cnn.Execute("Select @@rowcount")
response.write rs(0)
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 14:17 #4
Fik du prøvet det jeg skrev - det virker da i hvert fald lidt nemmere end det indlæg
du fik accepteret... :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester