Avatar billede butcher Nybegynder
30. juni 2002 - 20:57 Der er 5 kommentarer og
1 løsning

Fejl i linie bla bla...

Jeg har en side hvor der er følgende link:

<a href="ViewOrderDetails2.asp?qryID=<%= ID %>"><%= ID %> (Hvad er der bestilt, klik her)</a> Der hentes så ud fra en database, ID, så det bliver til: ViewOrderDetails2.asp?qryID=12.

Når den så kommer til næste sider, melder den:

ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/ViewOrderDetails2.asp, line 31

den side ser sådan her ud:

<% 
Option Explicit
Sub DrawPage()
%>
      <html>
<head>
<meta http-equiv="Content-Style-Type" content="text/css">
<title>Bestillings detaljer</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body topmargin="0" leftmargin="0">
<div align="center">
<table border="1" rules="groups" cellspacing="0" cellpadding="0" bordercolor="black" style="background: #CCCCCC">
<tr><td><img src="gfx/top.gif"></td></tr>
<tr>
<td><center><font size=5>
Oversigt over bestilling nr. <%= OrderID %></font>
<br><br>

      <table border=0 align="center">
          <tr style="background: #0569B2" align="center">
            <TD width=250><font color=white>Navn</font></TD>
          <TD width=75><font color=white>Pris </font></TD>
          <TD width=75><font color=white>Antal</font></TD>
          <TD width=75><font color=white>Total</font></TD>
      </tr>
<%
      while not rs.EOF
          rs.MoveFirst
          ID = rs("OrderID") & ""
          Name = rs("navn") & ""
          price = rs("Price") & ""
          quantity = rs("Quantity") & ""
          itemSubTotal = price * quantity
          totalCost = totalCost + itemSubTotal
         
      If price <> "" then
          price = FormatCurrency(price)
      End If
%>

     
      <TR align="center">
          <TD><%= Name %>  </TD>
          <TD><%= price %>  </TD>
          <TD><%= quantity %>  </TD>
          <TD><%= FormatCurrency(itemSubTotal) %>  </TD>
         
      </TR>
<% 
    rs.MoveNext
     
      wend
%>

      </TABLE>
<br>
<hr>
<a href="java script:history.back()">En side tilbage</a> - <a href="cart.asp">Se indkøbskurven</a> - <a href="index2.asp">Tilbage til hovedsiden</a>
<td>
<tr>
</table>
</div>
</body>
</html>
<%
End Sub
      dim rs
      dim sqlString
      dim connectionString, databaseName, path
      dim OrderID, ID, Name, price, quantity, itemSubTotal, totalCost
     
     
      OrderID = request.querystring("qryID")
     
      path = Server.MapPath(".")
      databaseName = "data.mdb"
  connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
      & path & "\" & databaseName
      sqlString = "select * from OrderDetails, Orders " & _
                  " where OrderDetails.ProductID=Orders.OID " & _
                  " AND OrderID=" & OrderID
      sqlString = sqlString & " Order By navn"
     
      set rs = Server.CreateObject("ADODB.Recordset")
      rs.Open sqlString, connectionString
     
      Call DrawPage()
     
      rs.Close
      Set rs = Nothing
%>

linie 31 er:

rs.MoveFirst
Avatar billede Søren Bech Morsing Praktikant
30. juni 2002 - 21:14 #1
ja, men du kontrollere ikke først om dit recordset, rs, er tomt!

Og der er det når du får den fejl.
Din SQL streng finder altså ingen matches.
God ide altid, hvis du da ikke viser dit recordset med en while løkke, er at du lige skriver en if sætning uden om alle de steder du vil vise data fra et recordset så brugeren ikke får en fejl.
if (NOT rs.EOF) then
  'din response.write
end if
Avatar billede butcher Nybegynder
30. juni 2002 - 21:23 #2
problemmet er bare at det ikke er tomt....ved godt jeg kan smide sådan en chekker ind og hvis den smides ind, så siger den, den er tom, hvilket den ikke er....
Avatar billede butcher Nybegynder
30. juni 2002 - 21:38 #3
lukker lige den her, da jeg griber den an på en anden facon
Avatar billede eagleeye Praktikant
30. juni 2002 - 21:40 #4
Det kan væer jeg har overset noget men så vidt jeg kan se laver du en uendelig løkke:

      while not rs.EOF
          rs.MoveFirst    <--Flytter den den første recod

          ...kode...

          rs.MoveNext    <--Flytter til næste recod
      wend

Ok hvis du kun har en record ville det virke, men så der heller ikke nødvendig med rs.movefirst...
Avatar billede tmceu Praktikant
30. juni 2002 - 21:41 #5
Prøv at fjerne din MoveFirst, recordsettet skulle gerne allerede stå ved første post.
Avatar billede butcher Nybegynder
30. juni 2002 - 21:52 #6
hvis jeg flytter den, så kommer der ikke noget data ud, bare en tom side....men jeg har ændret lidt i nogle sider før, tror det var der nogle problemmer lå, men så er jeg stødt ind i et anden mur, jeg opretter et nyt emne til det her
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