AND går väl inte...ska det inte vara OR?
Set rs = connection.Execute("SELECT * FROM Forum where Svara = '" & cStr(id) & "' OR Forum='" & Request.QueryString("forum") & "'order by ID DESC")
29 svar · 1 069 visningar · startad av cgi
Förstår inte riktigt vad som är fel med denna kod, den skriver ut alla inlägg men 100ggr dubbelt, med en rubrik och 100 likadana svar, vad är fel.?
<!-- #INCLUDE FILE="config.asp" -->
<%
Dim connection
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DSN=xxx-forum;Password=xxx"
Set rs2 = connection.Execute("SELECT * FROM Forum2 WHERE cInt(Id) = '" & Request.QueryString("Forum") & "'")
forumID=rs2("ID")
forumnamn=rs2("Namn")
foruminfo=rs2("info")
%>
<%call disp(0, 0)%> <%
Sub disp(id,level)
if level = 0 then
Set rs = connection.Execute("SELECT * FROM Forum where Svara = '" & cStr(id) & "' AND Forum='" & Request.QueryString("forum") & "'order by ID DESC")
else
Set rs = connection.Execute("SELECT * FROM Forum where Svara = '" & cStr(id) & "' AND Forum='" & Request.QueryString("forum") & "'order by ID")
end if
do until rs.eof
ID = rs("ID")
Namn = rs("Namn")
Email = rs("Email")
Forum=rs("Forum")
Rubrik = rs("Rubrik")
Tid2 = rs("Tid")
if level > 0 then
str=""
for j=1 to level
str=str & "<img src=""blank.gif"" border=0>"
next
end if
if level=0 then str="<img src=""top.gif"">"
if level > 0 then str=str & "<img src=""top2.gif"">"
%> <%=str%><a href="las_forum.asp?id=<%=ID%>&forum=<%=Forum%>"><%=Rubrik%></a> <%=av%> <%=Namn%> <%=Tid%><br>
<%
call disp(ID, level+1)
rs.movenext
loop
End Sub
%>
[Redigerat av cgi den 27 sep 2000]
AND går väl inte...ska det inte vara OR?
Set rs = connection.Execute("SELECT * FROM Forum where Svara = '" & cStr(id) & "' OR Forum='" & Request.QueryString("forum") & "'order by ID DESC")
Nope. Det mesta ser rätt ut.
"WHERE cInt(Id)='" blir lite lustigt. Du ska inte behöva typkonvertera något, och konverterar ¨du till inetegr, så ska du inte ha några fnuttar. Konstigt att den går igenom, överhuvud taget.
"SELECT * FROM Forum2 WHERE Id = " & Request.QueryString("Forum")
borde det vara...
..eller har du "Svara" och "ID" som text, och inte tal. Varför i så fall? Tänk på att du kan sätta bredden på blank.gif, i stället för att repetera den.
mvh
... och sätter man vidden så bör man oxå tänka på att sätta höjden .... annars ökar höjden när man ökar bredden med samma proportion som bredd ökningen,
cya,
PatrikB
Hmm... får nu upp: Syntaxfel i sträng i frågeuttrycket 'Id = 2''.
Du verkar ha fel datatyper....
Jo, det är rätt. Hur ser SQL-frågan ut nu. Skriv ut den med response.write i stället för att exekvera den.
Har helt kört fast nu, har ändrat lite i koden och den ser nu ut som denna:
<%
Dim connection
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DSN=xxx-forum;Password=xxx"
SQLStmt = "SELECT * FROM Forum where Id = " & Request.QueryString("Forum")
Set RS2 = Connection.Execute(SQLStmt)
forumID=RS2("ID")
forumnamn=RS2("fldNamn")
foruminfo=RS2("fldinfo")
%>
<a href="nytt.asp?forum=<%=forumID%>&Svara=0">Nytt inlägg</a>
<%
call disp(0, 0)
%>
<%
Sub disp(id,level)
If level = 0 then
SQL = "SELECT * FROM Forum2 where fldSvara = '" & cStr(id) & "' AND fldForum='" & Request.QueryString("forum") & "'order by fldID DESC"
Set RS3 = connection.Execute(SQL)
Else
SQL = "SELECT * FROM Forum2 where fldSvara = '" & cStr(id) & "' AND fldForum='" & Request.QueryString("forum") & "'order by fldID"
Set RS4 = connection.Execute(SQL)
End If
Do Until RS.EOF
ID = RS("fldID")
Namn = RS("fldNamn")
Email = RS("fldEmail")
Forum = RS("fldForum")
Titel = RS("fldTitel")
Tid2 = RS("fldTid")
If level > 0 then
str=""
for j=1 to level
str=str & "<img src=""blank.gif"" border=0>"
Next
End if
If level=0 then str="<img src=""1.gif"">"
If level > 0 then str=str & "<img src=""2.gif"">"
%><%=str%>
<a href="las_forum.asp?id=<%=ID%>&forum=<%=Forum%>"><%=Titel%></a> <%=av%> <%=Namn%> <%=Tid2%><br>
<%
call disp(ID, level+1)
RS.MoveNext
Loop
End Sub
%>
nu får jag upp att något typblandningsfel ligger på denna rad, Set RS3 = connection.Execute(SQL).
Vad är felet.??
Hello,
säger det jag med...hur ser SQLsträngen ut?
du kan skriva ut den innan du kör connection.execute med
Response.Write SQLstmt
cya,
PatrikB
Du har typblandningsfel. Ta bort enkelfnuttarna.
Nope, det har jag redan provat, funkar inte.
ahaa,
läste inte så noga i föregående inlägg,
fldSvara är alltså av typen - Tal
varför då göra det id till text.
Tror att det hjälper om du tar bort fnuttarna och cStr runt variabeln id
cya,
PatrikB
Tog bort fnuttarna samt cStr runt id, får upp fel att operator saknas.
Ingen som vet.??
Det borde ju stå i felmeddelandet vart operatorn fattas... visa hela felmeddelandet så skall vi se om vi kan hjälp dig...
Mvh, Vide
Oki här kommer den:
ADODB.Recordset.1 error '80004005'
Syntaxfel (operator saknas) i frågeuttrycket 'fldSvara='.
/2/forum.asp, line 26
... och vad får du om du skriver ut sin SQLsats med Response.write före det att du exekverar den...
Det verkar som om fältet fldSvara tilldelas något värde...
Mvh, Vide
Vide, hur menar du då.?