Titta hit någon.

ASP

29 svar · 1 069 visningar · startad av cgi

Medlem sedan jan. 2000371 inlägg
Trådstart#1

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]

Medlem sedan mars 2000167 inlägg
#2

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")
Medlem sedan dec. 19996 721 inlägg
#3

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

Medlem sedan mars 20002 836 inlägg
#4

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

Medlem sedan jan. 2000371 inlägg
#5

Hmm... får nu upp: Syntaxfel i sträng i frågeuttrycket 'Id = 2''.

Medlem sedan dec. 19996 721 inlägg
#6

Du verkar ha fel datatyper....

Medlem sedan jan. 2000371 inlägg
#7

Tror jag inte,

Id = Räknare
Svara = Tal

är inte detta rätt eller.?

Medlem sedan dec. 19996 721 inlägg
#8

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.

Medlem sedan jan. 2000371 inlägg
#9

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%>&nbsp;&nbsp;&nbsp;<%=Namn%>&nbsp;&nbsp;&nbsp;<%=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.??

Medlem sedan mars 20002 836 inlägg
#10

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

Medlem sedan dec. 19996 721 inlägg
#11

Du har typblandningsfel. Ta bort enkelfnuttarna.

Medlem sedan jan. 2000371 inlägg
#12

Nope, det har jag redan provat, funkar inte.

Medlem sedan mars 20002 836 inlägg
#13

Vad är fldSvara av för fälttyp??

//PatrikB

Medlem sedan mars 20002 836 inlägg
#14

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

Medlem sedan jan. 2000371 inlägg
#15

Tog bort fnuttarna samt cStr runt id, får upp fel att operator saknas.

Medlem sedan jan. 2000371 inlägg
#16

Ingen som vet.??

Medlem sedan dec. 19998 577 inlägg
#17

Det borde ju stå i felmeddelandet vart operatorn fattas... visa hela felmeddelandet så skall vi se om vi kan hjälp dig...

Mvh, Vide

Medlem sedan jan. 2000371 inlägg
#18

Oki här kommer den:

ADODB.Recordset.1 error '80004005'

Syntaxfel (operator saknas) i frågeuttrycket 'fldSvara='.

/2/forum.asp, line 26

Medlem sedan dec. 19998 577 inlägg
#19

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

Medlem sedan jan. 2000371 inlägg
#20

Vide, hur menar du då.?

265 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)