Avatar billede cdc Novice
28. marts 2004 - 19:55 Der er 11 kommentarer og
1 løsning

Hvordan ungå fejl når db er tom

Hvordan undgår man denne fejl når db er tom.

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/sambo/news/index.asp, line 0


/cdc
Avatar billede eagleeye Praktikant
28. marts 2004 - 20:00 #1
Man tester på recordset EOF flag.

if not rs.EOF then
  'brug recordsetet her
end if
Avatar billede cdc Novice
28. marts 2004 - 20:08 #2
på hver sin ende af denne ?

<%If Request.QueryString("do") = "" Then%>
        <%Set Conn = Server.CreateObject("ADODB.Connection")
          Set RecSet = Server.CreateObject("ADODB.Recordset")
          Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db1

          Sidan = Request.QueryString("sida")
          If Sidan = "" then
              sida = 1
          Else
              sida = Sidan
          End If

          With RecSet
              .CursorLocation = 3
              .CacheSize = perSida
          End With

          If CStr(Request.QueryString("id")) <> "" Then
            SQL = "SELECT * FROM nyheter Where id=" & Request.QueryString("id")
          Else
            SQL = "SELECT * FROM nyheter ORDER BY DATUM DESC"
          End If
          RecSet.Open SQL, Conn%>
Avatar billede eagleeye Praktikant
28. marts 2004 - 20:10 #3
Efter linjen med RecSet:

RecSet.Open SQL, Conn

if not RecSet.EOF then %>


<%end if%>
Avatar billede cdc Novice
28. marts 2004 - 20:13 #4
samme fejl, det er nok fordi jeg har mange RecSet
Avatar billede cdc Novice
28. marts 2004 - 20:14 #5
f.eks denne

          <%Else
          RecSet.Close

          SQL = "SELECT * FROM nyheter ORDER BY DATUM DESC"
          RecSet.Open SQL, Conn

          With RecSet
              .MoveFirst
              .PageSize = perSida
              .AbsolutePage = sida
          End With

          Sidor =  RecSet.PageCount%>
Avatar billede cdc Novice
28. marts 2004 - 20:14 #6
og denne:

          <%Count = 0
          Do While Not RecSet.EOF And Count < RecSet.PageSize

          X = X + 1
          If X Mod 2 = 0 then
            color = ""
          Else
            color = "#f0f0f0"
          End If %>
Avatar billede cdc Novice
28. marts 2004 - 20:15 #7
og den sidste :

        <%Count = Count + 1
        RecSet.MoveNext
        Loop

        RecSet.Close
    Set RecSet = nothing
        End If%>
<%If Sidor > 1 Then%>
Avatar billede eagleeye Praktikant
28. marts 2004 - 20:16 #8
Til denne skal man havde det omkring:

          SQL = "SELECT * FROM nyheter ORDER BY DATUM DESC"
          RecSet.Open SQL, Conn

          With RecSet
              .MoveFirst
              .PageSize = perSida
              .AbsolutePage = sida
          End With

          Sidor =  RecSet.PageCount%>


Sådan:

          SQL = "SELECT * FROM nyheter ORDER BY DATUM DESC"
          RecSet.Open SQL, Conn
          if not RecSet.EOF then
          With RecSet
              .MoveFirst
              .PageSize = perSida
              .AbsolutePage = sida
          End With

          Sidor =  RecSet.PageCount
          ..
          end if%>
Avatar billede eagleeye Praktikant
28. marts 2004 - 20:16 #9
de to andre er ok, det ligger i denne linje at siker EOF er false:
Do While Not RecSet.EOF And Count < RecSet.PageSize
Avatar billede cdc Novice
28. marts 2004 - 21:13 #10
det får jeg ikke til at virke..... :o(
Avatar billede eagleeye Praktikant
28. marts 2004 - 21:20 #11
Generalt skal man hvade det efter RecSet.Open og så end if efdter man har bruge RecSet.

Eks:

RecSet.Open SQL, Conn
Response.Write RecSet("kolonne")


Skal være:

RecSet.Open SQL, Conn
if not RecSet.EOF then
  Response.Write RecSet("kolonne")
end if
Avatar billede cdc Novice
29. marts 2004 - 10:22 #12
hmmmm, kan ikke få det her til at spille, men et nyhedsystem vil jo heller ikke være tomt, så jeg tror bare jeg glemmer det indtil vider
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