Avatar billede znuggle.com Nybegynder
27. juli 2003 - 13:32 Der er 18 kommentarer og
1 løsning

Fejl i ASP kode

Hej...

Jeg er i gang med at lave et lille script... Jeg kan bare ikke få det til at virke helt... Der er vist en fejl i denne her kode... Jeg ved bare ikke hvad. Fejlmeddelelsen er:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/znuggle_com/new/system/refinfo.asp, line 37

Og koden er:

<html>

<head>
<title>Znuggle</title>
<link href="../styles.css" type="text/css" rel="stylesheet">
</head>

<body>
<p><b>Referencer</b></p>

<p>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Ref Where ID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

Response.Write "<u>" & rs("Name") & "</u><br>"
Response.Write rs("Text")

Conn.Close
Set Conn = Nothing
%>
</p>
<hr width="75%">
<p><u>Kommentarer</u></p>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Comments Where RefID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

Do
%>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td width="100%">Skrevet af <i><%=rs("Name")%></i>, <i><%=rs("Date")%></i></td>
  </tr>
  <tr>
    <td width="100%"><%=Comment%></td>
  </tr>
</table>
<%
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>
</body>

</html>
Avatar billede tuctoh Nybegynder
27. juli 2003 - 13:34 #1
er Request("ID") et tal eller et bogstav?
Avatar billede whatever Nybegynder
27. juli 2003 - 13:34 #2
Prøv at udskrive strSQL.

Altså Response.Write(strSQL)
Avatar billede eagleeye Praktikant
27. juli 2003 - 13:34 #3
Hvis refID er tekst skal der ' omkring:

strSQL = "Select * from Comments Where RefID = '" & Request("ID") & "'"
Avatar billede eagleeye Praktikant
27. juli 2003 - 13:35 #4
Eller er Request("ID") nok tom.
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 13:37 #5
Request("ID") er et tal og ikke tomt. Det mærkelige er at den øverste Connection virker men den nederste gør ikke :S
Avatar billede tuctoh Nybegynder
27. juli 2003 - 13:39 #6
i tabellen "comments" er feltet refID tal som det skal være der?
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 13:39 #7
Hmm... 2 sek
Avatar billede eagleeye Praktikant
27. juli 2003 - 13:40 #8
Som før skrivet hvis kolonnen refID er definetet som tekst skal der ' omkring som vist.
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 13:48 #9
Ok, jeg har ændret feltet RefID til et Tal-felt og det hjalp... Men nu har jeg fået et andet problem... Det er lidt svært at forklare så prøv selv at gå ind på http://znuggle.com/new/system/reflist.asp
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 13:49 #10
Avatar billede eagleeye Praktikant
27. juli 2003 - 13:51 #11
Der sker ikke så meget der mangler et movenext i loop

Prøv at tilføje  rs.Movenext  lige inden linjen loop:

*Sådan her


Do
%>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td width="100%">Skrevet af <i><%=rs("Name")%></i>, <i><%=rs("Date")%></i></td>
  </tr>
  <tr>
    <td width="100%"><%=Comment%></td>
  </tr>
</table>
<%
rs.Movenext
Loop While Not rs.EOF
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 13:57 #12
Argh!... Kan ikke at se om det virker fordi min server er nede... Giver respons om en time eller to... Sorry
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 14:34 #13
Okay, det virker - men ikke helt.

Da det kun er emnet med ID 28, der har en kommentar, så er det også den eneste, der virker... Det er lidt svært at forklare, men som I kan se på http://znuggle.com/new/system/refinfo.asp?id=28, så virker den ikke.
Det gør http://znuggle.com/new/system/refinfo.asp?id=29 til gengæld, fordi der er blevet skrevet en kommentar til den.

Hvordan gør jeg sådan, at http://znuggle.com/new/system/refinfo.asp?id=28 også virker?
Avatar billede eagleeye Praktikant
27. juli 2003 - 14:38 #14
Det er fordi man skal lave

Do while not rs.EOF

  kode

loop


og ikke

do

kode

loop while not rs.EOF


Da den føste kun udføre koden inde i do while ... looet hvis der er noget i recordsetet hvorimod do ... loop while altid bliver udført mindst en gang også selvom rs er tomt og giver dermed en fejl.

Så prøv at flytte  "While Not rs.EOF"  og efter Do i stedet for efter loop
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 14:55 #15
Hmm... Jeg har ændret koden til:

<html>

<head>
<title>Znuggle</title>
<link href="../styles.css" type="text/css" rel="stylesheet">
</head>

<body>
<p><b>Referencer</b></p>

<p>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Ref Where ID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

Response.Write "<u>" & rs("Name") & "</u><br>"
Response.Write rs("Text")

Conn.Close
Set Conn = Nothing
%>
</p>
<p><u>Kommentarer</u></p>
<center>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Comments Where RefID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

Do While Not rs.EOF
%>
<table border="0" cellpadding="0" cellspacing="0" width="90%" style="border: 1 solid #000000;">
  <tr>
    <td width="100%" style="border-bottom: 1 solid #000000;">Skrevet af <i><%=rs("Name")%></i>, <i><%=rs("Date")%></i></td>
  </tr>
  <tr>
    <td width="100%"><%=rs("Comment")%></td>
  </tr>
</table>
<br>
<%
Loop
Do
%>
<i>Ingen kommentarer...</i>
<%
rs.Movenext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>
</center>
</body>

</html>

Men får så denne tekst:

Referencer

Test
100

Kommentarer

Ingen kommentarer...
ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/znuggle_com/new/system/refinfo.asp, line 56

Hvad er der galt?
Avatar billede eagleeye Praktikant
27. juli 2003 - 15:10 #16
Hvis du vil tjekke om der ikke er nogle kommentare så lav det som en if sætning først.:



<html>

<head>
<title>Znuggle</title>
<link href="../styles.css" type="text/css" rel="stylesheet">
</head>

<body>
<p><b>Referencer</b></p>

<p>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Ref Where ID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

Response.Write "<u>" & rs("Name") & "</u><br>"
Response.Write rs("Text")

Conn.Close
Set Conn = Nothing
%>
</p>
<p><u>Kommentarer</u></p>
<center>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Comments Where RefID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

if rs.EOF then
%>
<i>Ingen kommentarer...</i>
<%
end if
Do While Not rs.EOF
%>
<table border="0" cellpadding="0" cellspacing="0" width="90%" style="border: 1 solid #000000;">
  <tr>
    <td width="100%" style="border-bottom: 1 solid #000000;">Skrevet af <i><%=rs("Name")%></i>, <i><%=rs("Date")%></i></td>
  </tr>
  <tr>
    <td width="100%"><%=rs("Comment")%></td>
  </tr>
</table>
<br>
<%
Loop

Conn.Close
Set Conn = Nothing
%>
</center>
</body>

</html>
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 16:00 #17
Hmm... der sker ikke rigtigt noget... Siden bliver bare ved med at loade og loade uden der sker noget... Har prøvet på 2 forskellige servere... Hvorfor tager det så lang tid?
Avatar billede eagleeye Praktikant
27. juli 2003 - 16:02 #18
der mangler den mocenext i koden..:
Prøv dette:



<html>

<head>
<title>Znuggle</title>
<link href="../styles.css" type="text/css" rel="stylesheet">
</head>

<body>
<p><b>Referencer</b></p>

<p>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Ref Where ID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

Response.Write "<u>" & rs("Name") & "</u><br>"
Response.Write rs("Text")

Conn.Close
Set Conn = Nothing
%>
</p>
<p><u>Kommentarer</u></p>
<center>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * from Comments Where RefID = " & Request("ID")
Set rs = Conn.Execute(strSQL)

if rs.EOF then
%>
<i>Ingen kommentarer...</i>
<%
end if
Do While Not rs.EOF
%>
<table border="0" cellpadding="0" cellspacing="0" width="90%" style="border: 1 solid #000000;">
  <tr>
    <td width="100%" style="border-bottom: 1 solid #000000;">Skrevet af <i><%=rs("Name")%></i>, <i><%=rs("Date")%></i></td>
  </tr>
  <tr>
    <td width="100%"><%=rs("Comment")%></td>
  </tr>
</table>
<br>
<%
rs.Movenext
Loop

Conn.Close
Set Conn = Nothing
%>
</center>
</body>

</html>
Avatar billede znuggle.com Nybegynder
27. juli 2003 - 16:09 #19
Yes! Det virker... Tak eagle :P
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