Avatar billede bobbedude Nybegynder
01. maj 2002 - 10:58 Der er 20 kommentarer og
1 løsning

SQL fejl

katid = Request("katid")

If(katid <> "") Then

if oRs.eof then
strSQL = "SELECT reklame FROM egenreklamer"
else
strSQL = "SELECT reklame FROM egenreklamer WHERE lavetaf = '" & katid & "'"
end if
Else
strSQL = "SELECT reklame FROM egenreklamer"
End If


set oRs = oConn.Execute(strSQL)


response.write oRs("reklame")


hvis katid indeholder en værdi der ikke er i databasen får jeg fejlen:

ADODB.Field error '80020009'

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

kort.asp, line 0


Avatar billede agony Nybegynder
01. maj 2002 - 10:59 #1
dit resultset er tomt
Avatar billede eagleeye Praktikant
01. maj 2002 - 11:00 #2
inden du udskriver kan du teste på om recorsetet er tomet


if not oRs.EOF then
  response.write oRs("reklame")
else
  response.write "Ingen resultat ved søgning"
end if
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:01 #3
så hvad gør jeg ?
Avatar billede agony Nybegynder
01. maj 2002 - 11:01 #4
din kode ser ikke helt rigtig ud kan kan ikke få hele siden at se ?
Avatar billede eagleeye Praktikant
01. maj 2002 - 11:02 #5
du kan udviden den med både BOF og EOF


if not (oRs.EOF or oRs.BOF) then
  response.write oRs("reklame")
else
  response.write "Ingen resultat ved søgning"
end if
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:04 #6
eagleeye >> det jeg gerne ville var jo at skrive en reklame ud hvis katid ikke eksisterede.
derfor lavede jeg
if oRs.eof then
strSQL = "SELECT reklame FROM egenreklamer"
else

hvordan får jeg den til at skrive
oRs("reklame") ud med værdien a feks..
Avatar billede eagleeye Praktikant
01. maj 2002 - 11:07 #7
Prøv med denne så:

if (oRs.eof OR oRs.bof) then
  strSQL = "SELECT reklame FROM egenreklamer"
else
  strSQL = "SELECT reklame FROM egenreklamer WHERE lavetaf = '" & katid & "'"
end if
Avatar billede eagleeye Praktikant
01. maj 2002 - 11:09 #8
Er det hele din kode du viste i spørgsmålet???  Hvis ja så prøv at rette koden til dette:


katid = Request("katid")

If(katid = "") Then
  strSQL = "SELECT reklame FROM egenreklamer"
else
  strSQL = "SELECT reklame FROM egenreklamer WHERE lavetaf = '" & katid & "'"
end if

set oRs = oConn.Execute(strSQL)

response.write oRs("reklame")
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:12 #9
katid = Request("katid")

If(katid = "") Then
  strSQL = "SELECT reklame FROM egenreklamer"
else
  strSQL = "SELECT reklame FROM egenreklamer WHERE lavetaf = '" & katid & "'"
end if

set oRs = oConn.Execute(strSQL)

response.write oRs("reklame")

giver fejlen

ADODB.Field error '80020009'

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

kort.asp, line 0

Hvis katid ikke eksister
Avatar billede eagleeye Praktikant
01. maj 2002 - 11:16 #10
Og du er sikker på der er noget i tabellen "egenreklamer" hvis den tabel er tom får du fejlen ved "SELECT reklame FROM egenreklamer"... Du vil vel bare havde en rekalme ud, så kan du sætte TOP 1 på din SQL sådan her:


katid = Request("katid")

If len(""& katid &"") = 0 Then
  strSQL = "SELECT TOP 1 reklame FROM egenreklamer"
else
  strSQL = "SELECT reklame FROM egenreklamer WHERE lavetaf = '" & katid & "'"
end if

set oRs = oConn.Execute(strSQL)

if not (oRs.EOF or oRs.BOF) then
  response.write oRs("reklame")
else
  response.write oRs("ingen Reklame")
end if

Prøv dette
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:19 #11
Item cannot be found in the collection corresponding to the requested name or ordinal.

kort.asp, line 117


linie 117 =  response.write oRs("ingen Reklame")
Avatar billede eagleeye Praktikant
01. maj 2002 - 11:20 #12
how der skulle stå:
  response.write "ingen Reklame"


Har du lagt noget i tabellen egenreklamer i databasen?
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:24 #13
Det jeg vill var at den bare skulle tage den første reklame der står i databasen.

Id    reklame                              bruger      lavetaf

27    Egenreklame Svendborg            Svendborg    k
28    Egenreklame Faaborg Posten    Fåborgposten    j

Sådan ser db'en ud
Avatar billede eagleeye Praktikant
01. maj 2002 - 11:27 #14
Det lyder i grunden yderst mystisk prøv lige at udkrive stSQL ingen execute..:

Response.write strSQL
set oRs = oConn.Execute(strSQL)

og skriv resultat her, så vi kan se det.
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:28 #15
SELECT reklame FROM egenreklamer WHERE lavetaf = 'o'
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:29 #16
hvor kommer det o fra ?
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:34 #17
der er ikke noget o i databasen
Avatar billede bobbedude Nybegynder
01. maj 2002 - 11:37 #18
oki sorry sidder og sover fordi der jo er noget med på katid hvergang men det er ikke hvergang at der er en katid der eksister i egenreklamer
Avatar billede eagleeye Praktikant
01. maj 2002 - 12:10 #19
Din Request("katid") er = "o" så katid er ikke tom.
Avatar billede eagleeye Praktikant
01. maj 2002 - 12:11 #20
Ja og da der ikke er noget o i databasen så får du et tomt recordset når du udføre/executer din SQL sætningen.
Avatar billede eagleeye Praktikant
01. maj 2002 - 12:15 #21
Så kan du lave sådan her hvis katid ikke eksistere så hendter den bare den første..:


katid = Request("katid")

If len(""& katid &"") = 0 Then
  strSQL = "SELECT TOP 1 reklame FROM egenreklamer"
  katid = ""
else
  strSQL = "SELECT reklame FROM egenreklamer WHERE lavetaf = '" & katid & "'"
end if

set oRs = oConn.Execute(strSQL)
'Hvis recordsetet er tomt og katid er valgt så hendt den første reklame..
if (oRs.EOF) and (katid <> "") then
  strSQL = "SELECT TOP 1 reklame FROM egenreklamer"
  set oRs = oConn.Execute(strSQL)
end if

if not (oRs.EOF or oRs.BOF) then
  response.write oRs("reklame")
else
  response.write oRs("ingen Reklame")
end if
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