/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Slette fra database ud fra dato?
Fra : Søren Badstue


Dato : 14-03-01 20:48

Hejsa!

Jeg har et problem (ok, hvem har ikke det

Jeg har en database med bl.a. en kolonne til dato af formatet 14-03-01. Nu vil
jeg godt have min asp-side til at slette de linier der er ældre en f.eks. 60
fage. Hvordan gør jeg det? Jeg har lavet følgende kode, men jeg kan ikke få den
til at slette de linier. Sådan som det er nu, sletter den det hele men jeg
synes selv jeg har prøvet ALT! (ja, ja, det ved jeg jo godt jeg ikke har

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("opslag.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select * from opslag"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

dtmDate = Date()-60
response.write dtmDate

str = "Delete from opslag where indrykket < " & dtmDate

Conn.Execute(str)

response.write str


' Gennemløb Recordset (rs) med en løkke
Do

' Udskriv værdien af kolonnen overskrift
strLink = "<a href='find.asp?id=" & rs("Id") & "'>" & rs("overskrift") & "</a>"
' Liste med links
Response.Write strLink & "<br>"

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

rs.close
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>




--
Med venlig hilsen:

Søren Badstue


 
 
MacMac (14-03-2001)
Kommentar
Fra : MacMac


Dato : 14-03-01 22:34

I brevet "BUPr6.908$S3.85248@news010.worldonline.dk" skrev Søren Badstue
(soren.badstue@image.dk) den 14/03/01 20:47:

> Hejsa!
>
> Jeg har et problem (ok, hvem har ikke det
>
> Jeg har en database med bl.a. en kolonne til dato af formatet 14-03-01. Nu vil
> jeg godt have min asp-side til at slette de linier der er ældre en f.eks. 60
> fage. Hvordan gør jeg det? Jeg har lavet følgende kode, men jeg kan ikke få
> den
> til at slette de linier. Sådan som det er nu, sletter den det hele men jeg
> synes selv jeg har prøvet ALT! (ja, ja, det ved jeg jo godt jeg ikke har
>
> <%
> ' Databaseforbindelse - husk at angive sti til din database
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath ("opslag.mdb")
> Conn.Open DSN
>
> ' SQL forespørgsel
> strSQL = "Select * from opslag"
> ' Udfør forespørgsel (rs indeholder nu resultatet)
> Set rs = Conn.Execute(strSQL)
>
> dtmDate = Date()-60
> response.write dtmDate
>
> str = "Delete from opslag where indrykket < " & dtmDate

Du bruger formentlig Access og Access sutter på det område. Jeg har flere
gange oplevet at den sammenligner forkert - men i dette tilfælde er det dog
din fejl
Jeg mener der skal havelåger (#) rundt om datoen når du bruger Access, altså
noget à la WHERE indrykket < #"& dtmDate &"#, men jeg kan ikke helt huske
det.
Bruger du SQL Server er det langt smatere vha. DateDiff funktionen som
Access, så vidt jeg husker, ikke understøtter.

Venlig hilsen
Morten


Svend Hellner (15-03-2001)
Kommentar
Fra : Svend Hellner


Dato : 15-03-01 00:14

Du skal bruge DateAdd funktionen i VB-script.

dtmDate = DateAdd("m", -2, date) hvis du vil "trække" to måneder fra eller

dtmDate = DateAdd("d", -60, date) hvis du vil "trække" dine 60 dage fra.

"d" eller "m" er intervallet - dag eller måned. Tallet står for antal af det
pågældende, - trækker fra. Date er datoen, du vil trække fra eller lægge
til. Hvis du bruger en specifik dato, skal den være i anførselstegn.

mvh. Svend



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste