webForumDet fria alternativet

Option Explicit

52 svar · 1 695 visningar · startad av ade

adeMedlem sedan juli 20041 081 inlägg
#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
magnusfernstromMedlem sedan mars 20033 686 inlägg
#2

Har du "dimmat" alla dina variabler?

Mer kod tack.

adeMedlem 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>
magnusfernstromMedlem 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
adeMedlem 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)
icaaqMedlem 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

icaaqMedlem 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

magnusfernstromMedlem 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.

magnusfernstromMedlem 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.

adeMedlem 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..

adeMedlem sedan juli 20041 081 inlägg
#11

jag testar nu.. sj iaf

magnusfernstromMedlem 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".

adeMedlem sedan juli 20041 081 inlägg
#13

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

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

den är inte skrivskyddad

icaaqMedlem 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

magnusfernstromMedlem 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")%>
adeMedlem sedan juli 20041 081 inlägg
#18

jag förstår..

adeMedlem sedan juli 20041 081 inlägg
#19

jag testar nu

adeMedlem sedan juli 20041 081 inlägg
#20

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

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