Avatar billede fastwrite Nybegynder
22. august 2003 - 17:22 Der er 23 kommentarer og
2 løsninger

BOF eller EOF - fejl ved request.form

Hej med jer. Jeg modtager følgende fejl:
"ADODB.Field error '800a0bcd'

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

/html/shop/shop.asp, line 23"

Fejlen opstår så snart jeg ændrer følgende kode:

strSQL = "Select * from QryProdukter"

til:

strSQL = "Select * From qryProdukter WHERE kategori='" & request("kat") & "'"

- hvorfor går den fejl? Jeg har ikke sat nogen BOF eller EOF nogen steder - skal den stå nogen steder?
Avatar billede eagleeye Praktikant
22. august 2003 - 17:25 #1
Det fordi din database tabel er tom og du bør sætte en if sætning ind som tjekker på det:

strSQL = "Select * From qryProdukter WHERE kategori='" & request("kat") & "'"

Set rs =conn.execute(strSQL)

if rs.EOF then
  Reponse.Write "Ingen data fundet"
else
  'Udskive

end if
Avatar billede bobbedude Nybegynder
22. august 2003 - 17:25 #2
er du sikker på der kommer en værdi med i din request ?
Prøv at ændre request("kat") til request.querystring("kat")

Hvis der kommer noget med i din request er der så et nummer i kategori der passer på det tal der kommer fra request ?
Avatar billede eagleeye Praktikant
22. august 2003 - 17:26 #3
Sagt på en anden måde du har ikke en kategori i databasen som du søger efter.
Avatar billede mm12010 Nybegynder
22. august 2003 - 17:26 #4
det er sandsynlig hvis fordi du prøver at udskrive et felt med rs("feltnavn") så ikke findes(sikkert bare stavet forkert)

tjeck for stavefejl :o)
Avatar billede mm12010 Nybegynder
22. august 2003 - 17:27 #5
så=som :o)
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:33 #6
hm... der er en enkelt post i databasen, som den gerne skulle hente?
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:34 #7
eagleeye - ahh, du er inde på noget af det rigtige, for jeg har kun et produkt i en kategori... jeg prøver lige at sætte din EOF ind.
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:37 #8
arh - hvor skal jeg sætte den kode ind?

min kode er lige nu:

<%
Dim rst
Dim strSQL
strSQL = "Select * From qryProdukter WHERE kategori='" & request.querystring("kat") & "'"

Set rst = Server.CreateObject("ADODB.Recordset")
%>
<%
rst.Open strSQL, con, 3, 1, 1
%>
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:37 #9
den der EOF kode?
Avatar billede eagleeye Praktikant
22. august 2003 - 17:38 #10
Sådan her:


<%
Dim rst
Dim strSQL
strSQL = "Select * From qryProdukter WHERE kategori='" & request.querystring("kat") & "'"

Set rst = Server.CreateObject("ADODB.Recordset")
%>
<%
rst.Open strSQL, con, 3, 1, 1

if rst.EOF then
  Reponse.Write "Ingen data fundet"
else
  'Udskive fra dit recordet
  do while not rst.EOF
 
    rst.movenext
  loop
end if
%>
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:45 #11
hæ - du skriver reponse - jeg formoder det er reSponse :o)

Men - eagleeye- hvor du skriver "udskrive fra dit recordset" - hvad skal der stå her? For jeg har en table der bliver fyldt ud med tekst og billede fra databasen.. skal den ind i mellem den?
Avatar billede eagleeye Praktikant
22. august 2003 - 17:46 #12
Det med loop var et eksemple. Du skal skrive du som du havde til at stå neden uder rst.Open og gav feljen med BOF or EOF fejl.
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:48 #13
ok - nu er jeg kommet så langt at jeg har sat mine data ind i mellem den hvor du skriver 'udskrive fra dit recordset'.

men - nu skriver siden konstant at der ingen data findes......?
Avatar billede eagleeye Praktikant
22. august 2003 - 17:50 #14
Prøv at udskrive din SQL så du/vi kan se om du får den rigtige kategori med:

Så du lige før linjen med denne:

rst.Open strSQL, con, 3, 1, 1


Skriver:
Response.Write strSQL
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:51 #15
prøver prøver (meget ihærdig)
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:51 #16
den skriver følgende: Select * From qryProdukter WHERE kategori=''Ingen data fundet
Avatar billede eagleeye Praktikant
22. august 2003 - 17:53 #17
Ok, så får du ikke fat i kategorien via linket,  request("kat")
Står der i linket noget med xxx.asp?kat=visdenne
Avatar billede fastwrite Nybegynder
22. august 2003 - 17:56 #18
hmm.. den kommer slet ikke så langt.. når jeg vil starte siden op, skriver den med det samme "ingen data fundet", og viser intet andet.
Avatar billede eagleeye Praktikant
22. august 2003 - 18:01 #19
Ikke forstået??

Hvis du ikke anger noget i linket (QueryString) vil den skrive "ingen data fundet". Du skal angive den kategorien du vil havde vis i linket ved at skriv:

xxx.asp?kat=DENNE

kat fordi du skriver Request("kat") det hendet det tekst som står efter = tegnet.
Avatar billede fastwrite Nybegynder
22. august 2003 - 18:13 #20
jeg har prøvet at fjerne WHERE kategori= etc. - så nu kan jeg se det hele igen. Når jeg så vælger fra min dropdownbox, viser den følgende http:

http://www.[linket]/shop.asp?kategori=1&Submit=v%E6lg
Avatar billede fastwrite Nybegynder
22. august 2003 - 18:14 #21
skal den skrive &submit=v%E6lg ?
Avatar billede fastwrite Nybegynder
22. august 2003 - 18:14 #22
[ps - takker for din tålmodighed]
Avatar billede eagleeye Praktikant
22. august 2003 - 18:16 #23
Ok,
Du skal havde kun havde det som har med udskrift fra rst ind i Else delen på den if sætning og ikke hele resten af koden,

if rst.EOF then
  Reponse.Write "Ingen data fundet"
else
  'Kode som
  'udskive fra rst

end if

'ny SQL som finden noget andet
rs2.Open SQL,conn
Avatar billede fastwrite Nybegynder
22. august 2003 - 19:04 #24
ok - jeg takker mange gange for hjælpen - jeg har forstået hvordan det virker, og vil nu tilrette hjemmesiden.
Avatar billede fastwrite Nybegynder
22. august 2003 - 19:05 #25
håber fordelingen er ok med jer.
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