Avatar billede pallepop Nybegynder
25. juni 2003 - 16:14 Der er 34 kommentarer og
1 løsning

ADODB.Field (0x80020009)

Er der nogen som ved noget om ASP ???

ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Jeg har tjekket mindst 20 spørgsmål med samme fejlmeddelelse, men der er intet jeg kan bruge. Alle accepterede svar siger skriv rs.EOF..... og det er netop hvad jeg har gjort.
Jeg vil have en submit button som vises, hvis der ikke findes en post i db'en, og en anden, hvis der findes en post.

if rs1.EOF then
%>
<input Type="submit" value="" id=submit1 name="" >
<%
else
  if inStr(rs1.Fields("feltnavn"), "string") > 0 then
%>
<input Type="submit" value="Cancel" id=submit1  name="" >
<%end if
end if
%>

Der vises deen rigtige submitbutton når der er noger i rs, mens der opstår fejl når den er tom.
Avatar billede netro Nybegynder
25. juni 2003 - 16:22 #1
Hvordan ser dit SQL-statement ud?
Avatar billede eagleeye Praktikant
25. juni 2003 - 16:27 #2
Det kunne måske tyde på du udskriver fra samme eller et andet recordset som er tomt, som ikke har tjekket if rs.EOF omkring sig.
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:27 #3
sql = "select * from tabel "
<%
if betingelse then

sql = sql & betingelse

rs.open slq, conn
%>
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:30 #4
Jeg ønsker jo netop at se om der resultatet er et tom rs. Derfor tjekker jeg med if rs.EOF.....
Avatar billede netro Nybegynder
25. juni 2003 - 16:31 #5
Dit recordsæt kalder du rs. Derfor skal du også tjekke for rs.EOF og ikke rs1.EOF.
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:32 #6
Så spørgsmålet er :
Hvorfor får jeg fejl istedet for "True" når jeg spørger om rs er tom
Avatar billede netro Nybegynder
25. juni 2003 - 16:33 #7
Fordi det pågældende recordsæt ikke eksisterer.
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:34 #8
Der skal stå rs1.... rs bruges et andet sted, men det er ikke en skrivefejl
Avatar billede netro Nybegynder
25. juni 2003 - 16:34 #9
Kan du ikke vise det i sammenhæng?
Avatar billede eagleeye Praktikant
25. juni 2003 - 16:36 #10
Som jeg skrev du har sikkert at andet recordset som du ikke har tjekker på sig.

if not rs.EOF then
  'udksriv fra rs her.
 

end if
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:41 #11
sql1 = "SELECT * FROM tabel WHERE ID = "& rs.Fields("ID")

if  Request.Form("studentID")<> "" then
sql1 = sql1 &    " AND S = " & Request.Form("SID")
else
sql1 = sql1 &    " AND S = " & Session("SID")
end if
                   
rs1.Open sql1, conn
               
if rs1.EOF or rs1.BOF  then
%>
<input Type="submit" value="1" id=submit1 name="1" >
<%
else
  if inStr(rs1.Fields("A"), "A") > 0 then
%>
<input Type="submit" value="2" id=submit1 name="2" >
<%end if
end if
%>
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:42 #12
eagleeye du læser ikke hvad jeg skriver.......
Avatar billede netro Nybegynder
25. juni 2003 - 16:43 #13
Set rs1 = Server.CreateObject("ADODB.Recordset")
Avatar billede netro Nybegynder
25. juni 2003 - 16:45 #14
Altså...:

Set rs1 = Server.CreateObject("ADODB.Recordset")
rs1.Open sql1, conn
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:45 #15
jeg opretter rs i en includefil, der virker på alle andre sider.
Så det er heller ikke fejlen
Avatar billede netro Nybegynder
25. juni 2003 - 16:46 #16
Ja, rs... Men hvad med rs1?
Avatar billede eagleeye Praktikant
25. juni 2003 - 16:47 #17
Jeg læser fint hvad du skriver men læser du hvad jeg skriver?

Er du 100% sikker på dit recordset rs ikke er tomt (ikke rs1)
Eksvis vil du få den fejl i denne linje hvis rs er tomtt:

sql1 = "SELECT * FROM tabel WHERE ID = "& rs.Fields("ID")
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:47 #18
desuden virker den jo, når der er et resultat.....
Avatar billede netro Nybegynder
25. juni 2003 - 16:48 #19
Var der ikke rs1.EOF, der gav fejl??
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:48 #20
jeg ville aldrig komme så langt hvis ts var tom..... så ja, jeg er helt sikker på at rs ikke er tom
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:49 #21
og jo netro det er rs1 som giver fejl.
Avatar billede netro Nybegynder
25. juni 2003 - 16:50 #22
Kan du altid skabe rs1?
Avatar billede eagleeye Praktikant
25. juni 2003 - 16:51 #23
Prøv at lave det inde i if sætningen om til dette for en test:
Laver den så en submit med navet 2 og value 2 når rs1 er tomt?


if rs1.EOF or rs1.BOF  then
%>
<input Type="submit" value="1" id=submit1 name="1" >
<%
else
%>
<input Type="submit" value="2" id=submit1 name="2" >
<%
end if
%>
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:51 #24
ja, min include opretter 5 stk.'s rs
Avatar billede netro Nybegynder
25. juni 2003 - 16:55 #25
Med navnet 1 og value 1, mener du vel?
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:55 #26
eagleeye
hvorfor skulle den det ??? hvis if betingelsen er opfyldt springer nden da ikke in i else....
Avatar billede pallepop Nybegynder
25. juni 2003 - 16:57 #27
eagleeye
Og nej.... den virker ikke fordi jeg fjerner den anden if sætning
Avatar billede netro Nybegynder
25. juni 2003 - 16:59 #28
Præcis hvilken linie siger du, fejlen kommer i?
Avatar billede eagleeye Praktikant
25. juni 2003 - 16:59 #29
Glem det... Jeg kan ikke forklare min godt nok så..
Avatar billede pallepop Nybegynder
25. juni 2003 - 17:00 #30
Der kommer ikke noget linie nummer :-(

og jeg kan jo se i sql manageren, om rs1 er tom eller ikke.
Avatar billede netro Nybegynder
25. juni 2003 - 17:00 #31
Får du en fejl 500, eller hvad?
Avatar billede netro Nybegynder
25. juni 2003 - 17:05 #32
Hvis ja, så gå op i Funktioner -> Internetindstillinger -> Avanceret -> Vis meddelelser om uskadelige HTTP-fejl og fjern fluebenet.
Avatar billede nielle Nybegynder
25. juni 2003 - 17:19 #33
Er du nu også 100% sikker på at det lige præcis er den "rs1.EOF or rs1.BOF" som giver dig problemet? Det kunne sagtene være et tidligere SQL-kald som var skurken.

Prøv at indsætte "Response.End" lige før stedet pg se så om du stadig får din fejl.
Avatar billede pallepop Nybegynder
26. juni 2003 - 13:24 #34
Beklager drenge, men I var ikke til megen hjælp.

Jeg endte med i stedet at leve en af mine foran stående sql forespøgsler om, så jeg hentede de nødvendige oplysninger der.

Jeg er sikker på at det var rs1.EOF som gav fejl, men hvorfor har jeg stadig ikke fundet ud af. Jeg bruger "if rs.EOF" flere steder og har ikke problemer med det andre steder..... men jeg løste altså problemet, ved at hente oplysningerne et andet sted.
Avatar billede netro Nybegynder
27. juni 2003 - 15:03 #35
Det kan da ikke være så svært at forstå. Hvis rs1.EOF giver fejl, er det fordi det påglædende recordsæt ikke eksisterer! That's it! :)
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