Avatar billede morten2001 Nybegynder
24. juli 2001 - 12:30 Der er 11 kommentarer og
1 løsning

Fejl

jeg får en fejl i den nederste linie... hvad er der galt i dette script?

<%

Set conn = Server.CreateObject(\"ADODB.connection\")
Conn.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.mapPath(\"test.mdb\")


if(request(\"action\") =\"hent\") then

SQL = \"select * from user\"
Set row = Conn.execute( SQL )

else if(request(\"action\") =\"ret\") then

SQL = \"update user set navn = \'mads2000\' where id =1\"
Conn.execute( SQL )

else if(request(\"action\") =\"slet\") then

SQL = \"Delete from user where id =10\"
conn.execute( SQL )

else if(request(\"action\") =\"skriv\") then
set row = server.createobject(\"ADODB.Recordset\")
SQL = \"select * from user\"
row.open SQL,1,3
row.addnew
row(\"navn\") = \"mads\"
row.update
row.close

else

Response.write(\"Du mangler at skrive en funktion\")

end if

conn.close
set conn = nothing
set row = nothing
%>

Avatar billede eflow Nybegynder
24. juli 2001 - 12:31 #1
hvad er fejl medelelsen ?
Avatar billede morten2001 Nybegynder
24. juli 2001 - 12:33 #2
Technical Information (for support personnel)

Error Type:
Microsoft VBScript compilation (0x800A03F6)
Expected \'End\'
/asp/database/blandet.asp, line 39


Browser Type:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Page:
GET /asp/database/blandet.asp

Time:
24. juli 2001, 12:40:01
Avatar billede oswald Nybegynder
24. juli 2001 - 12:33 #3
Det kunne være rart at have fejlmedelelsen, men et bud er at de sidste sætninger skal være.

set row = nothing
conn.close
set conn = nothing

da du vist ikke må lukke connectionen mens du har et aktivt recordset.
Avatar billede morten2001 Nybegynder
24. juli 2001 - 12:37 #4
Oswald det var ikke det :)
Avatar billede zeptic Nybegynder
24. juli 2001 - 12:42 #5
du har en masse else if ... then, som du ikke afslutter med et end.
Avatar billede morten2001 Nybegynder
24. juli 2001 - 12:43 #6
vidste jeg sq ikke man skulle

kan du give et eksempel?


else if() then

end???
Avatar billede oswald Nybegynder
24. juli 2001 - 12:45 #7
Så er det måske dette :).
Prøv at skriv ELSEIF og ikke ELSE IF

Men det andet er nu god skik.
Avatar billede nute Nybegynder
24. juli 2001 - 12:46 #8
prøv denne:

<%
Set conn = Server.CreateObject(\"ADODB.connection\")
Conn.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.mapPath(\"test.mdb\")

if(request(\"action\") =\"hent\") then
    SQL = \"select * from user\"
    Set row = Conn.execute( SQL )
else
    if(request(\"action\") =\"ret\") then
       
        SQL = \"update user set navn = \'mads2000\' where id =1\"
        Conn.execute( SQL )
   
  else
      if(request(\"action\") =\"slet\") then
            SQL = \"Delete from user where id =10\"
            conn.execute( SQL )
        else
          if(request(\"action\") =\"skriv\") then
                set row = server.createobject(\"ADODB.Recordset\")
                SQL = \"select * from user\"
                row.open SQL,1,3
                row.addnew
                row(\"navn\") = \"mads\"
                row.update
                row.close
            else
       
                Response.write(\"Du mangler at skrive en funktion\")
            end if
        end if
    end if
end if
conn.close
set conn = nothing
set row = nothing
%>

/nute
Avatar billede zeptic Nybegynder
24. juli 2001 - 12:48 #9
hver gang du laver en if skal den afsluttes med end if.

if ... then

else
    if ... then
    end if
end if

Du kan forøvrigt med fordel omskrive din kode til at bruge select..case.
Avatar billede oswald Nybegynder
24. juli 2001 - 12:50 #10
Jeg ville nu ellers lave noget i stilen med. (Den er ikke testet så der er nok en fejl eller to)

select case lcase(request(\"action\"))
case \"hent\"
    SQL = \"select * from user\"
    Set row = Conn.execute( SQL )
case \"ret\"       
        SQL = \"update user set navn = \'mads2000\' where id =1\"
        Conn.execute( SQL )
case \"slet\"
            SQL = \"Delete from user where id =10\"
            conn.execute( SQL )
case \"skriv\"
                set row = server.createobject(\"ADODB.Recordset\")
                SQL = \"select * from user\"
                row.open SQL,1,3
                row.addnew
                row(\"navn\") = \"mads\"
                row.update
                row.close
case else
       
                Response.write(\"Du mangler at skrive en funktion\")
end select

Avatar billede nute Nybegynder
24. juli 2001 - 12:51 #11
jeg er fullstendig enig med oswald. En select case er bedre å benytte til denne type problem.

/nute
Avatar billede morten2001 Nybegynder
24. juli 2001 - 12:53 #12
ARghhh slag til mig *GG*

det var fordi jeg havde taget fejl af

else if og elseif


.... takker for hjælpen..!
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