Avatar billede x-periment Nybegynder
24. oktober 2002 - 23:44 Der er 5 kommentarer og
1 løsning

HJÆLP

hvad er der galt her fejlmeddelsen lyder sådanne :

Fejltype:
(0x80020009)
Undtagelse opstod.
/spil/funktioner.asp, line 117

Function Display_shot(row,col,hit)
  'Opret forbindelse til databasen
  SQLserveradr="localhost"
  SQLdatabase="Spil"   
  SQLlogin=""
  SQLpassword=""
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase &";uid="& SQLlogin &";pwd="& SQLpassword
  strSQL = "Select * From navy Where id= 1"
  Set rs = Conn.Execute(strSQL) 

dim udstr
udstr = "<table border=1 class=plade>"
 
if hit = true then
   
  for r= 0 to 19
 
    udstr = udstr & "<tr>" 
    for d=0 to 19
      if (((r = row) and (d = col)) or rs("hit") = 5) then
        udstr = udstr & "<td width=""15"" class=plade_hit> &nbsp;</td>"
        'indsæt værdierne til databsen
          strSQL = "Update navy set hit = 5 where x='r' and y='d'"
          'send informationen til databasen
          Conn.Execute(strSQL)
      else
            if rs("hit") = 6 then
              udstr = udstr & "<td width=""15"" class=plade_miss> &nbsp;</td>"
            else           
              udstr = udstr & "<td width=""15"" class=plade_ledig><a Href=Default.asp?id=3&row="& r&"&"& "col=" & d &"&"&">&nbsp;</a></td>"
            end if
      end if
    if Not rs.EOF then
      rs.movenext
    else
    end if
    next
  udstr = udstr & "</tr>"
  next
else
  for r = 0 to 19
    udstr = udstr & "<tr>" 
    for d=0 to 19
***linie 117 ****      if ((r = row) and (d = col)) or rs("hit") = 6  then
        udstr = udstr & "<td width=""15"" class=plade_miss> &nbsp;</td>"
        'indsæt værdierne til databsen
        strSQL = "Update navy set hit = 6 where x='r' and y='d'"
        'send informationen til databasen
        Conn.Execute(strSQL)   
      else if rs("hit") = 5 then
              udstr = udstr & "<td width=""15"" class=plade_hit> &nbsp;</td>"
          else
            udstr = udstr & "<td width=""15"" class=plade_ledig><a Href=Default.asp?id=3&row="& r&"&"& "col=" & d &"&"&"> &nbsp;</a></td>"
          end if     
      end if
    if Not rs.EOF then
      rs.movenext
    else
    end if
    next
    udstr = udstr & "</tr>"
  next
end if

udstr = udstr & "</table>"
Response.Write udstr
'Luk forbindelsen til databasen
Conn.Close
Set Conn = Nothing
end Function

Jeg kan ikke helt se hvordan det kan være et overløb af rs da jeg ikke tæller den op hvis den er nået til ende
Avatar billede dalbjerg Nybegynder
24. oktober 2002 - 23:47 #1
lyder som om din database, er gået i stykker
Avatar billede angel_seraphiel Nybegynder
24. oktober 2002 - 23:51 #2
flot overskrift, klap klap
Avatar billede speedy2000 Nybegynder
25. oktober 2002 - 00:22 #3
Databasen er ikke nødvendigvis gået istykker...
Fejlen betyder, at det i linien opstår en undtagelse. Altså at den i gennemløbet får en værdi der ikke er defineret i den givne IF sætning.

Prøv at fjerne  :  or rs("hit") = 6
Og se om den melder samme fejl :o)
Avatar billede zeptic Nybegynder
25. oktober 2002 - 08:25 #4
Prøv evt. med or CInt(rs("hit"))=6
Avatar billede x-periment Nybegynder
25. oktober 2002 - 10:18 #5
jeg har fjernet rs("hit")=6 det fjernede fejlen
Og undksyld den dumme overskrift var bare træt på tidspunktet
Avatar billede eagleeye Praktikant
03. november 2002 - 03:01 #6
Du flytter rs frem hele tiden i for sætninge.
Denne if sætning flytter en record frem i recordset.:

    if Not rs.EOF then
      rs.movenext
    else
    end if

Så på et tidspunkt rs.EOF true og når du så tilgår rs("hit") så kommer fejlen.
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