webForumDet fria alternativet
Logga in / Bli medlem

Exception occurred ?

ASP

9 svar · 290 visningar · startad av timedia

Medlem sedan maj 2001420 inlägg
Trådstart#1

Funktionen skriver ut rubrik, sen får jag följande fel:

error '80020009' 
Exception occurred. 

/enviro/Default.asp, line 123

Linje 123 är sista response.write i denna funktion (den med left(Brodtext, 250)):

function toartikler()

SQLlist = "SELECT TOP 2 Id, Rubrik, Brodtext FROM Nyheter ORDER by Id Desc"

Set RS = Connect.Execute(SQLlist)
RS.Cachesize = 2

set ID = RS("Id")
set Rubrik = RS("Rubrik")
set Brodtext = RS("Brodtext")

if not (RS.eof and RS.bof) then
DO UNTIL RS.EOF
  
  response.write left(Rubrik, 50)
  response.write "</B><BR>"
  response.write left(Brodtext, 250) & "... <a href=" & chr(34) & "art.asp?Id=" & Id & chr(34) &">Les mere</a></div>"
  RS.MoveNext
  Loop
else
  response.write "<br><b>Ingen artikler i databasen???</b><br>"
end if

RS.Close

End Function

Vad gör jag fel?

Medlem sedan dec. 200012 464 inlägg
#2

Jag vet inte varför det blir fel men du kanske kan testa att inte använda set vid dessa tilldelningar.

 ID = RS("Id")
 Rubrik = RS("Rubrik")
 Brodtext = RS("Brodtext")
Medlem sedan maj 2001420 inlägg
#3

Följde Lars förslag och då hände detta:

Microsoft OLE DB Provider for ODBC Drivers error '80040e21' 

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done. 

/enviro/Default.asp, line 115
Medlem sedan dec. 200012 464 inlägg
#4

Jaha, det där brukar bero på att man långa (>8000 tecken) fält. Det kan vara typen text i SQL server eller PM/Memo i Access.
Om man har det så måste dessa anges sist i select-satsen. Om det finns flera så måste de anges i samma odning som de har definierats i tabellen.

(I de flesta fall är det onödigt att använda text i SQL server, det går bättre med varchar istället. En kolumn av typen varchar kan vara maximalt 8000 tecken lång.)

Medlem sedan maj 2001420 inlägg
#5

Hmmm... förstår inte riktigt. Det är ju en Access2000 DB.
Id = räknare
Rubrik = text max. 255 tecken
Brodtext = PM (inte obligatoriskt)

Medlem sedan juni 200032 967 inlägg
#6

Om man har det så måste dessa anges sist i select-satsen. Om det finns flera så måste de anges i samma odning som de har definierats i tabellen.

Medlem sedan maj 2001420 inlägg
#7

???? è de värmen som har slagit ut mig???

Om man har det så måste dessa anges sist i select-satsen. Om det finns flera så måste de anges i samma odning som de har definierats i tabellen.

Brodtext är PM och sist i select-satsen. Förövrigt ligger dom i den ordningen i tabellen också.

Medlem sedan dec. 200012 464 inlägg
#8

Nej, jag förstår inte heller riktigt.

En sak är att tilldelningarna borde ligga inom loopen.

function toartikler()

SQLlist = "SELECT TOP 2 Id, Rubrik, Brodtext FROM Nyheter ORDER by Id Desc"

Set RS = Connect.Execute(SQLlist)
RS.Cachesize = 2

if not RS.eof then
DO UNTIL RS.EOF
ID = RS("Id")
Rubrik = RS("Rubrik")
Brodtext = RS("Brodtext")

response.write left(Rubrik, 50)
response.write "</B><BR>"
response.write left(Brodtext, 250) & "... <a href=" & chr(34) & "art.asp?Id=" & Id & chr(34) &">Les mere</a></div>"
RS.MoveNext
Loop
else
response.write "<br><b>Ingen artikler i databasen???</b><br>"
end if

RS.Close

End Function

Det kanske är tomt i tabellen?

Medlem sedan maj 2001420 inlägg
#9

Ovanstående funka inte. Har jag gjord nåt fel med tabellen?
http://www.tottointeraktiv.com/enviro.mdb

Medlem sedan maj 2001420 inlägg
#10

Någon som hittar fel i tabellen (eller ännu bättre vet varför jag får dissa errors?)

Mycket tacksam för svar! :q

390 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
137 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)