Avatar billede ultik Nybegynder
12. november 2000 - 01:40 Der er 24 kommentarer og
1 løsning

Undtagelse opstod.

Hvad går galt her:

<!--#include file=\"inc/opendb.asp\" -->
<%
sqlGetInfo = \"SELECT * FROM users WHERE brugernavn = \'\" & session(\"nickname\") & \"\'\"
set rsGetInfo = connDB.Execute(sqlGetInfo)

if rsGetInfo.eof or rsGetInfo.bof then
    response.write \"Access Denied\"
else
    sqlMinPoint = \"SELECT * FROM levels WHERE minPoint < \" & rsGetInfo(\"points\") & \" ORDER BY minPoint DESC\" 
    set rsMinPoint = connDB.Execute(sqlMinPoint)
    if int(rsGetInfo(\"level\")) < int(rsMinPoint(\"Id\")) then
        sqlLevel = \"UPDATE users SET [level] = \" & rsMinPoint(\"Id\") & \" WHERE brugernavn = \'\" & session(\"nickname\") & \"\'\"
        connDB.Execute(sqlLevel)
    end if
    response.write rsGetInfo(\"brugernavn\") & \"<br>\"
    response.write \"Level: \" & rsMinPoint(\"Id\") & \"<br>\"
    response.write \"Point: \" & rsGetInfo(\"points\") & \"\"
end if
%>
<!--#include file=\"inc/closedb.asp\" -->

... jeg for fejlen:

fejl \'80020009\'

Undtagelse opstod.

/onlinecity.dk/chatuserinfo.asp, linje 11

Mvh.
Ulrik Jensen
ulrik@qcom.dk
Avatar billede stringbuffer Nybegynder
12. november 2000 - 02:49 #1
den eneste forklaring, jeg kan se, er at dine includes ikke klarer åbningen eller lukningen af din connection korrekt.
prøv at kopiere deres indhold ind i din asp-fil og se om du stadig får fejlmeldingen når du bruger ren asp uden includes.

hvis fejlen stadig kommer så lad os lige kigge på hvordan den åbner hhv lukker din connection
Avatar billede tdaugaard Nybegynder
12. november 2000 - 03:06 #2
sqlLevel = \"UPDATE users SET [level] = \" & rsMinPoint(\"Id\") & \" WHERE brugernavn = \'\" & session(\"nickname\") & \"\'\"

hvorfor bruger du braces til at \"omfange\" \'level\' ?

sqlLevel = \"UPDATE users SET level=\" & rsMinPoint(\"Id\") & \" WHERE brugernavn=\'\" & session(\"nickname\") & \"\';\"

should do it. Jeg siger ikke dette er fejlen, slet ikke, men alligevel ..
Avatar billede ultik Nybegynder
12. november 2000 - 03:09 #3
Det virker ikke:

<%
dim connDB, dsnDB

set connDB = Server.CreateObject(\"ADODB.Connection\")
dsnDB = \"DBQ=c:\\xxx.mdb;Driver={Microsoft Access Driver (*.mdb)};\"

connDB.Open dsnDB

sqlGetInfo = \"SELECT * FROM users WHERE brugernavn = \'\" & session(\"brugernavn\") & \"\'\"
set rsGetInfo = connDB.Execute(sqlGetInfo)

if rsGetInfo.eof or rsGetInfo.bof then
    response.write \"Access Denied\"
else
    sqlMinPoint = \"SELECT * FROM levels WHERE minPoint < \" & rsGetInfo(\"points\") & \" ORDER BY minPoint DESC\" 
    set rsMinPoint = connDB.Execute(sqlMinPoint)
    if rsGetInfo(\"level\") < rsMinPoint(\"Id\") then
        sqlLevel = \"UPDATE users SET [level] = \" & rsMinPoint(\"Id\") & \" WHERE brugernavn = \'\" & session(\"brugernavn\") & \"\'\"
        connDB.Execute(sqlLevel)
    end if
    response.write rsGetInfo(\"brugernavn\") & \"<br>\"
    response.write \"Level: \" & rsMinPoint(\"Id\") & \"<br>\"
    response.write \"Point: \" & rsGetInfo(\"points\") & \"\"
end if

connDB.Close
set connDB = nothing
%>
Avatar billede tdaugaard Nybegynder
12. november 2000 - 03:11 #4
set rsGetInfo = Server.CreateObject(\"ADODB.Recordset\")

skal du ikke have sådan en med under ADODB.Connection ?
Avatar billede ultik Nybegynder
12. november 2000 - 03:15 #5
tdaugaard >> Fordi \"level\" er et registeret sql udtryk lige som f.eks. \"by\"
Avatar billede stringbuffer Nybegynder
12. november 2000 - 03:18 #6
hmm... er ikke så sikker på denn her:
dsnDB = \"DBQ=c:\\xxx.mdb\"

burde det ikke være

dsnDB = \"DBQ=c:\\\\xxx.mdb\"
Avatar billede stringbuffer Nybegynder
12. november 2000 - 03:21 #7
ultik har ret, det vil ikke virke indtil du finder et andet navn til dine level felter. f.eks. myLevel eller sårn...

har prøvet noget lignende og var tæt på at opgive men brugte så felt-udelukkelse til at finde synderen.

Damn...
Avatar billede tdaugaard Nybegynder
12. november 2000 - 03:21 #8
ultik:> don\'t mind me *pppffftt* (forkølet forsøg på et *fløjter*)

stringbuffer:> Nope .. DBQ har altid været en absolut fysisk sti.

DBQ=\" & Server.MapPath(\"..\\..\\xxx.mdb\") \' eksempel

er bedre at bruge.
Avatar billede ultik Nybegynder
12. november 2000 - 03:22 #9
nej, det virker med alle andre scripts der bruger opendb.asp...

tdaugaard >> nope, den bliver lavet når man kalder connDB.Execute(sqlLevel)
Avatar billede stringbuffer Nybegynder
12. november 2000 - 03:26 #10
tdaugaard <-  typisk VBScript... man ved sgu aldrig hvad der er tegn og hvad der er escape-tegn...
i JScript ved man i det mindste altid at \\ i en string angiver et escape-character.
Avatar billede tdaugaard Nybegynder
12. november 2000 - 03:27 #11
smart ..
Avatar billede tdaugaard Nybegynder
12. november 2000 - 03:30 #12
stringbuffer:> tjaa .. det kan der være noget om, men VBScript HAR ikke noget escape-tegn :-)
Jeg glæææder mig til ASP+ bliver std. så kørere vi Visual Basic som std. scriptsprog ..
Avatar billede stringbuffer Nybegynder
12. november 2000 - 03:41 #13
tdaugaard <- VBShit er da standard scriptsprog i ASP...

Glæder mig til gengæld til de laver en compiler til JScript så man kan sætte ydelsen lidt op *G*

desuden... du siger at VBScript ikke har escape tegn, men såvidt jeg husker er \"\\x3c\" et escape tegn for \"<\" OGSÅ i VBSnask.

Så det ville ikke være helt fedt at kalde sin DB for f.eks. x3c.mdb eller x3cmedmere.mdb *GGG*
Avatar billede tdaugaard Nybegynder
12. november 2000 - 03:43 #14
Der er da ikke noget escape-tegn der hedder \\x3c .. hvad faen skulle man bruge det til ? vbEscape ? vbCrLf til CarrigeReturn+LineFeed ?

Jeg skrev ASP+ (Plus) .. der er Visual Basic std. sprog.
Avatar billede stringbuffer Nybegynder
12. november 2000 - 03:52 #15
tja.. ok, det kan være at escape tegn kun bliver brugt i regulære udtryk i VBS.

Og jo, jeg ved godt at du skrev ASP+, troede bare at du mente VBScript og ikke Visual Basic :-)

Avatar billede tdaugaard Nybegynder
12. november 2000 - 03:56 #16
Hæ hæ .. af hvad jeg ved og har set, så jo ..

Nååå ... sorry .. ;)
Avatar billede erikjacobsen Ekspert
12. november 2000 - 07:31 #17
Er du sikker på at rsMinPoint indeholder tupler - hvis forespørgslen
giver 0 tupler, får du jo en fejl i  if int(rsGetInfo(\"level\")) < int(rsMinPoint(\"Id\")) then
Avatar billede ultik Nybegynder
12. november 2000 - 13:35 #18
good point, men da vi kører den på en PWS, plejer den så ikke at give en besked om dette ? istedet for undtagelse opstod ?

jeg prøver lige at indsætte et tjek
Avatar billede ultik Nybegynder
12. november 2000 - 13:38 #19
hov, kommer lige i tanke om, der sidder allerede sådant et tjek i scriptet :

if rsGetInfo.eof or rsGetInfo.bof then
    response.write \"Access Denied\"
else..........

burde dette ikke være nok ?
Avatar billede erikjacobsen Ekspert
12. november 2000 - 20:01 #20
Det er på den ene select, ultik, men ikke på den anden, der fortsat er utjekket.
Joh, jeg synes også at huske den fejlbesked anderledes, men prøv da at udelukke
den mulighed.
Avatar billede ultik Nybegynder
12. november 2000 - 20:49 #21
/me meget dum..............

du har fuldkommen ret..............

tak or hjælpen, lav et svar \"så får du som fortjent\" :-)

Med venlig hilsen
Ulrik Jensen
ulrik@qcom.dk
Avatar billede erikjacobsen Ekspert
12. november 2000 - 21:06 #22
Nemlig! Men som du kan se, var jeg ikke sikker. Derfor først svar nu... ;-)
Avatar billede ultik Nybegynder
12. november 2000 - 22:45 #23
60 coming at ya........
Avatar billede bbs Nybegynder
30. marts 2001 - 23:10 #24
Tillykke med Spørgsmål nr. 33000 !
Avatar billede wanger Nybegynder
04. juli 2002 - 00:23 #25
WANGEREN var her.. .,'¨´,.

TILLYKKE MED DE 33000

my mother was a trailer...
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