webForumDet fria alternativet

Option Explicit

ASPur ASP

52 svar · 1 701 visningar · startad av ade

Medlem sedan juli 20041 081 inlägg
Frågan#1

Jag får detta felmedelande på mitt nya forumprojet :)


Microsoft VBScript compilation error '800a0400' 

Expected statement 

/forum1.0/Default.asp, line 10

Option Explicit
^

rad 10: Option Explicit
Medlem sedan mars 20033 686 inlägg
#2

Har du "dimmat" alla dina variabler?

Mer kod tack.

Medlem sedan juli 20041 081 inlägg
#3
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%
Option Explicit
Dim objConn 'as object
Dim strConn 'as string
Dim strSQL 'as string
Dim rstForum 'as recordset

'Skapa databas-anslutningen
Set objConn = Server.CreateObject("ADODB.Connection")
'forum.mdb skall bytas ut mot vad din databas-fil heter.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
objConn.Open strConn

'Skapa SQL-strängen för att hämta alla som är huvud-inlägg (threadParent=0).
strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster FROM tblForum WHERE threadParent=0 ORDER BY threadDateTime DESC"

'Skapa och öppna ett recordset
Set rstForum = objConn.Execute(strSQL)
%>
<html>
 <body>
  <table border="0">
   <tr>
    <td colspan="3">
     <a href="form.asp">Skriv ett nytt inlägg</a>
    </td>
   </tr>    <tr>
    <td>
     <b>Rubrik</b>
    </td>
    <td>
     <b>Datum</b>
    </td>
    <td>
     <b>Vem?</b>
    </td>
   </tr>
   <%
'Kontrollera om det finns några inlägg
if (rstForum.EOF or rstForum.BOF) then
   %>
   <tr>
    <td colspan="3">
     <b>Det finns inga inlägg i forumet</b>
    </td>
   </tr>
   <%
else
  do while not rstForum.EOF
   %>
   <tr>
    <td>
     <b><a href="readThread.asp?threadID=<%=rstForum(0)%>"><%=rstForum(2)%></a></b>
    </td>
    <td>
     <b><%=rstForum(1)%></b>
    </td>
    <td>
     <b><%=rstForum(3)%></b>
    </td>
   </tr>
   <%
   rstForum.MoveNext
  loop
end if
  %>
  </table>
 </body>
</html>
<%
'Stäng databasen
objConn.Close
Set objConn = nothing
%> 
</body>
</html>
Medlem sedan mars 20033 686 inlägg
#4

Annars kan du ju pröva med att ta bort den här delen av koden:

Option Explicit
Dim objConn 'as object
Dim strConn 'as string
Dim strSQL 'as string
Dim rstForum 'as recordset
Medlem sedan juli 20041 081 inlägg
#5

Då fick jag detta felmedelande

Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

/forum1.0/Default.asp, line 20

rad 20:

Set rstForum = objConn.Execute(strSQL)
Medlem sedan okt. 20005 273 inlägg
#6

Då har du skrivit fel i din SQL-sats.

Stämmer alla fältnamn överens med namnen i databasen?

mv icaaq

Medlem sedan okt. 20005 273 inlägg
#7

Och jag tycker att du ska använda dig av Option Explicit. Men det hjälper om du skriver det överst i ditt asp-dokument.

mv icaaq

Medlem sedan mars 20033 686 inlägg
#8
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
SQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster FROM tblForum WHERE threadParent=0 ORDER BY threadDateTime DESC"

Set rs = Conn.Execute(SQL)
%>
<html>
 <body>
  <table border="0">
   <tr>
    <td colspan="3">
     <a href="form.asp">Skriv ett nytt inlägg</a>
    </td>
   </tr>    <tr>
    <td>
     <b>Rubrik</b>
    </td>
    <td>
     <b>Datum</b>
    </td>
    <td>
     <b>Vem?</b>
    </td>
   </tr>
   <%
if (rs.EOF or rs.BOF) then
   %>
   <tr>
    <td colspan="3">
     <b>Det finns inga inlägg i forumet</b>
    </td>
   </tr>
   <%
else
  do while not rs.EOF
   %>
   <tr>
    <td>
     <b><a href="readThread.asp?threadID=[b]Recordset[/b]">[b]Recordset[/b]</a></b>
    </td>
    <td>
     <b>Skriv ut recordset</b>
    </td>
    <td>
     <b>Skriv ut recordset</b>
    </td>
   </tr>
   <%
   rs.MoveNext
  loop
end if
  %>
  </table>
 </body>
</html>
<%
Conn.Close
Set Conn = nothing
%> 
</body>
</html>

Jag skippade "dimningen" och döpte om lite i scriptet. Där det står "Skriv ut recordset" skall du skriva ut det du vill ha. Efter querystringen ID skall t.ex. ID-recordsetet skrivas ut.

Medlem sedan mars 20033 686 inlägg
#9

icaaq: Vad skall det vara bra för egentligen? Att dimma alltså. Har gjort alla möjliga script och aldrig använt mig av det.

Medlem sedan juli 20041 081 inlägg
#10

hehe.. jag e kass på asp.. kan inte du göra det :( de ska va id vet jag iaf..

Medlem sedan juli 20041 081 inlägg
#11

jag testar nu.. sj iaf

Medlem sedan mars 20033 686 inlägg
#12

Kan du skriva ut alla kolumnnamn databasen (vad dom heter alltså) här på wF. Sedan får du gärna säga VAD som skall finnas (ett namn av avsändaren, en hemsideadress) där det står "Skriv ut recordset".

Medlem sedan juli 20041 081 inlägg
#13

sk ajag skriva ID-recordset överallt där du skrivit skriv recordset?

Medlem sedan juli 20041 081 inlägg
Medlem sedan juli 20041 081 inlägg
#15

den är inte skrivskyddad

Medlem sedan okt. 20005 273 inlägg
#16

http://www.webforum.nu/showthread.php?s=&postid=76616#post76616

Ignorera mitt inlägg senare i den tråden då det är helt fel.

mv icaaq

Medlem sedan mars 20033 686 inlägg
#17

Nej. Om du t.ex. har en kolumn där ett ID-nummer finns skall detta skrivas ut i länken. Om man sedan kanske kan skriva in sin hemsideadress skall ju detta också loopas ut.

Säg att du har döpt dina fält till forumID samt forumURL.

I loopen skriver du då

ID för inlägg: <%=rs("forumID")%>
Avsändarens adress: <%=rs("forumURL")%>
Medlem sedan juli 20041 081 inlägg
#18

jag förstår..

Medlem sedan juli 20041 081 inlägg
#19

jag testar nu

Medlem sedan juli 20041 081 inlägg
#20

saknar efarnhet för sånt här märker jag :) skulle du kunna skriva ut recordsetten?

127 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)