Avatar billede haase Nybegynder
07. september 2003 - 10:53 Der er 4 kommentarer og
1 løsning

Fejl i databasen eller hvad?

jeg ved ikke hvad der er galt med denne side... er der nogen der kan hjælpe?

se det på www.forstkandidat.info

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/skov_conn.asp" -->
<%
if Len(Request.QueryString("id")) = 0 then
strID = 20
else
strID = Request.QueryString("id")
end if
%>
<%
set rsDok = Server.CreateObject("ADODB.Recordset")
rsDok.ActiveConnection = MM_skov_conn_STRING
rsDok.Source = "SELECT tblDok.*, tblDokType.*, tblBaggrund.*, tblDiv.*  FROM tblDok, tblDokType, tblBaggrund, tblBillede, tblDiv  WHERE DokID =" & CInt(strID) & " AND tblDok.DokBaggrund = tblBaggrund.BaggrundID AND tblDok.DokType = tblDokType.DokTypeID"
rsDok.CursorType = 0
rsDok.CursorLocation = 2
rsDok.LockType = 3
rsDok.Open()
rsDok_numRows = 0

SESSION.LCID = 1030

IF rsDok("DokType") = 1 THEN
Response.Redirect "open1.asp?id=" & strID
ELSEIF rsDok("DokType") = 2 THEN
Response.Redirect "open2.asp?id=" & strID
ELSEIF rsDok("DokType") = 3 THEN
Response.Redirect "open3.asp?id=" & strID
ELSEIF rsDok("DokType") = 4 THEN
Response.Redirect "open4.asp?id=" & strID
ELSEIF rsDok("DokType") = 5 THEN
Response.Redirect "open5.asp?id=" & strID
ELSEIF rsDok("DokType") = 6 THEN
Response.Redirect "open6.asp?id=" & strID
ELSEIF rsDok("DokType") = 7 THEN
Response.Redirect "open7.asp?id=" & strID
ELSEIF rsDok("DokType") = 8 THEN
Response.Redirect "open8.asp?id=" & strID
ELSEIF rsDok("DokType") = 9 THEN
Response.Redirect "open9.asp?id=" & strID
ELSEIF rsDok("DokType") = 10 THEN
Response.Redirect "open10.asp?id=" & strID
ELSE
Response.Write "ingen side tilknyttet dette menupunkt..."
END IF

rsDok.Close()
%>


Følgende fejlmeddelese fremkommer:
i denne linje 'IF rsDok("DokType") = 1 THEN'



error '80020009'
Exception occurred.

/open.asp, line 24


/haase
Avatar billede erikjacobsen Ekspert
07. september 2003 - 11:01 #1
Du skal lave en

  if not rsdok.eof then

  end if

uden om
Avatar billede socle Nybegynder
07. september 2003 - 11:02 #2
ser ud som om der ikke er noget i rsDok. test evt. med

if rsDok.eof then
response.write("recordset empty")
else
IF rsDok("DokType") = 1 THEN '[... osv.]
end if
Avatar billede haase Nybegynder
07. september 2003 - 11:07 #3
hmm, recordsettet VAR tomt..
Avatar billede soes Nybegynder
07. september 2003 - 12:04 #4
lige en lille kommentar til din kode. nu tester du en masse gange vha. if then elseif osv. det virker sikkert ganske udemærket, men det ville være mere logisk at bruge et select case statement. ex.

Select Case rsDok("DokType")
Case 1 Response.Redirect "open1.asp?id=" & strID
Case 2 Response.Redirect "open2.asp?id=" & strID
...
End Select

du kan læse mere om select case her:
http://www.devguru.com/Technologies/vbscript/quickref/selectcase.html

Jeg har læst en artikkel hvor de sammenlignede if vs. select og der var ikke den vilde forskel i performance men det giver synes jeg en pænere kode.
Avatar billede erikjacobsen Ekspert
07. september 2003 - 12:10 #5
Jah, eller:

a=rsDok("DokType")
IF a>=1 and a<=10 THEN
  Response.Redirect "open" & a & ".asp?id=" & strID
ELSE
  Response.Write "ingen side tilknyttet dette menupunkt..."
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