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>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
er Request("ID") et tal eller et bogstav?
Prøv at udskrive strSQL. Altså Response.Write(strSQL)
Hvis refID er tekst skal der ' omkring: strSQL = "Select * from Comments Where RefID = '" & Request("ID") & "'"
Eller er Request("ID") nok tom.
Request("ID") er et tal og ikke tomt. Det mærkelige er at den øverste Connection virker men den nederste gør ikke :S
i tabellen "comments" er feltet refID tal som det skal være der?
Som før skrivet hvis kolonnen refID er definetet som tekst skal der ' omkring som vist.
27. juli 2003 - 13:49
#10
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
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
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
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?
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>
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?
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>
27. juli 2003 - 16:09
#19
Yes! Det virker... Tak eagle :P
Kurser inden for grundlæggende programmering