Avatar billede jpv Nybegynder
10. juni 2003 - 10:32 Der er 7 kommentarer og
1 løsning

fejl i paging når jeg vil slette gamle poster

Jeg er ved at lave en paging, hvor den skal slette poster som er over 30 dage gammel. Men jeg får denne fejl
Object required:  linje 40

Koder ser sådanne ud:


intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If


Set rs = Server.CreateObject("ADODB.RecordSet")
set rs =connect.execute( "DELETE FROM koeb where dato<Date()-30")

strSQL = "SELECT * FROM koeb Order By genstand ASC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/carstendyk.mdb")

rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 8
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<b>Side " & intPage & " af " & intPageCount & "</b>"
    Do While Not rs.EOF And intRecCount > 0

%>
Linje 40 er
set rs =connect.execute( "DELETE FROM koeb where dato<Date()-30")
Er der nogen der kan hjælpe
Avatar billede somaliomar Praktikant
10. juni 2003 - 10:39 #1
Du skal jo først oprette en database-forbindelse før du kan fyre SQL-sætninger af på databasen. Prøv det her:

Set Connection = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/carstendyk.mdb")
Connection.Open strDSN
Connection.execute "DELETE FROM koeb where dato<Date()-30"

strSQL = "SELECT * FROM koeb Order By genstand ASC"
Set rs = Server.CreateObject("ADODB.RecordSet")

rs.Open strSQL, Connection, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 8
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Response.Write "<b>Side " & intPage & " af " & intPageCount & "</b>"
    Do While Not rs.EOF And intRecCount > 0

%>
Avatar billede Spotgun Seniormester
10. juni 2003 - 10:44 #2
Du får aldrig et resultset tilbage ved delete (eller update/inserts) sql'er.

Så den korrekte løsning burde være at erstatte:

Set rs = Server.CreateObject("ADODB.RecordSet")
set rs =connect.execute( "DELETE FROM koeb where dato<Date()-30")

med:

Set rs = Server.CreateObject("ADODB.RecordSet") ' du bruger jo denne til din select senere hen, så lad den stå...
connect.execute( "DELETE FROM koeb where dato<Date()-30")
Avatar billede jpv Nybegynder
10. juni 2003 - 10:58 #3
somaliomar løsning virker.
Jeg har ikke prøvet din løsning spotgun
Men tak fordi du prøvede
Jeg mangler et svar fra dig somaliomar
Avatar billede somaliomar Praktikant
10. juni 2003 - 11:01 #4
Her har du et svar :)
Avatar billede somaliomar Praktikant
10. juni 2003 - 11:01 #5
Ups...
Avatar billede jpv Nybegynder
10. juni 2003 - 11:09 #6
tak for hjælpen
Avatar billede Spotgun Seniormester
10. juni 2003 - 11:11 #7
Somaliomars løsning er egentligt også den samme, nu jeg ser efter... :)
Avatar billede somaliomar Praktikant
10. juni 2003 - 11:24 #8
Jep det er det også ;)

Tak for points :D
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