Avatar billede zetn Nybegynder
09. januar 2004 - 17:59 Der er 14 kommentarer og
1 løsning

Slette hvis dato er overskredet

Burde det her ikke slette hvis tildato er overskredet?


strSQL = "SELECT * FROM kalender ORDER BY id DESC"
Set rs = Conn.Execute(strSQL)

do while not rs.eof
dato = rs("tildato")
id = rs("id").Value
if dato < date then
strSQL = "DELETE FROM kalender WHERE id = '" & id & "'"
Conn.Execute(strSQL)
end if
rs.MoveNext
Loop
Avatar billede deeflate Nybegynder
09. januar 2004 - 18:12 #1
Er din id ikke et tal?
Så skal du ikke have '' om.
Avatar billede zetn Nybegynder
09. januar 2004 - 18:12 #2
Hvorhenne?
Avatar billede deeflate Nybegynder
09. januar 2004 - 18:15 #3
strSQL = "DELETE FROM kalender WHERE id = '" & id & "'"

-->

strSQL = "DELETE FROM kalender WHERE id = " & id
Avatar billede thesurfer Nybegynder
09. januar 2004 - 18:20 #4
Kan man ikke bare gøre sådan?:

do while not rs.eof
if rs("tildato") < date then
strSQL = "DELETE FROM kalender WHERE id = " & rs("id")
Conn.Execute(strSQL)
end if
rs.MoveNext
Loop
Avatar billede deeflate Nybegynder
09. januar 2004 - 18:23 #5
Jo, det er det samme.

Man kan endda gøre sådan:

do while not rs.eof
if rs("tildato") < date then
Conn.Execute("DELETE FROM kalender WHERE id = " & rs("id"))
end if
rs.MoveNext
Loop
Avatar billede zetn Nybegynder
09. januar 2004 - 18:52 #6
Den sletter ikke noget...
Avatar billede deeflate Nybegynder
09. januar 2004 - 21:15 #7
Hmm... har lige testet følgende og det virkede:

<%
Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("database.mdb")
Conn.Open strDSN

strSQL = "SELECT * FROM kalender"

rs.open strSQL, conn

do while not rs.eof
if rs("tildato") < date then
Conn.Execute("DELETE FROM kalender WHERE id = " & rs("id"))
end if
rs.MoveNext
Loop
%>

feltet "id" i databasen er autonummerering og feltet "tildato" er natuligvis af datatypen dato og klokkeslet.
Avatar billede deeflate Nybegynder
09. januar 2004 - 21:17 #8
Har du prøvet bare at udskrive noget for at se om if'en fungerer efter hensigten? Hvis ikke så prøv:

do while not rs.eof
if rs("tildato") < date then
response.Write "post nr. " & rs("id") & " er for gammel..."
end if
rs.MoveNext
Loop

Hvad sker der så?
Avatar billede zetn Nybegynder
09. januar 2004 - 21:31 #9
der sker ikke noget.... tildato på det jeg tester er 08-01-2004
Avatar billede zetn Nybegynder
09. januar 2004 - 21:34 #10
Der mangler lige en " på hver side af date

do while not rs.eof
if rs("tildato") < "" & date & "" then
response.Write "post nr. " & rs("id") & " er for gammel..."
end if
rs.MoveNext
Loop
Avatar billede zetn Nybegynder
09. januar 2004 - 21:36 #11
smid et svar
Avatar billede deeflate Nybegynder
09. januar 2004 - 21:37 #12
ok :)
Løste " problemet?
Avatar billede deeflate Nybegynder
09. januar 2004 - 21:40 #13
Hos mig gør den tilføjelse ganske vist at ALT ryger, men hvis det virker hos dig, så hey...
Avatar billede zetn Nybegynder
09. januar 2004 - 21:44 #14
det virker :) takker
Avatar billede deeflate Nybegynder
09. januar 2004 - 21:50 #15
Glimrende :o)
Tak for point.
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