webForumDet fria alternativet

Problem med utskrift av tråd...

ASP

6 svar · 203 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej Igen

Det strular som faan just nu, varje tråd i mitt forum skriv ut med två olika SQL'er, för att ämnet och frågan ligger i en tabell, alla svaren ligger i en annan tabell:

<%
Response.Expires = -1000

'_____________________________________________________________

id = Request.Querystring("id")

'_____________________________________________________________

Dim oConn
Dim oRec
Dim oRec2
Dim strSQL

'_____________________________________________________________

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/forum_db.mdb"))

'_____________________________________________________________

strSQL= "SELECT * FROM tbl_forum_subj WHERE ID = " & id & ";"
Set oRec = Server.CreateObject("ADODB.Recordset")

Set oRec = oConn.Execute(strSQL)

Response.Write("<table width='100%' border='0'><tr><td align='left' bgcolor='#FCFDCD'><font color='#000000' face='Verdana' size='2'><b>" & oRec("Amne") & "</b></td><td align='right' bgcolor='#FCFDCD'>Av: " & oRec("Skribent") & " den " & oRec("Datum") & "&nbsp;&nbsp;<i>" & oRec("Ipadress") & "</i></font></td></tr><tr><td width='100%' colspan='2'><font color='000000' face='Verdana' size='2'><br>" & oRec("Inlagg") & "</td></tr><tr><td width='100%' colspan='2'  bgcolor='#FCFDCD'></font></td></tr><tr><td width='100%' colspan='2'><hr noshade='noshade' style='height: 1px; color: #ccc' />")

Set oRec = NOTHING
Set strSQL = NOTHING

'_____________________________________________________________

nextPage = TRIM( Request.Querystring( "nextPage" ) )
IF nextPage = "" THEN nextPage = 1

strSQL2= "SELECT * FROM tbl_forum_sv WHERE Svar_ID = " & id & ";"
Set oRec2 = Server.CreateObject("ADODB.Recordset")

oRec2.Open strSQL2, oConn, 1, 3

oRec2.PageSize = 3 '<-- Här bestämmer du hur många inlägg det ska finnas på sidan
oRec2.AbsolutePage = nextPage

Do until oRec2.EOF OR rowCount = oRec2.PageSize
rowCount = rowCount + 1

	Response.Write("<tr><td align='left' bgcolor='#FCFDCD'></td><td align='right' bgcolor='#FCFDCD'>Av: " & oRec2("Skribent") & " den " & oRec2("Datum") & "&nbsp;&nbsp;<i>" & oRec2("Ipadress") & "</i></font></td></tr><tr><td width='100%' colspan='2'><font color='000000' face='Verdana' size='2'><br>" & oRec2("Inlagg") & "</td></tr><tr><td width='100%' colspan='2'  bgcolor='#FCFDCD'></font></td></tr><tr><td width='100%' colspan='2' height='20'><hr noshade='noshade' style='height: 1px; color: #ccc' /></td></tr>")
	
	oRec2.MoveNext

Loop

	Response.Write("<tr><td width='100%' colspan='2' bgcolor='#FCFDCD'>jtyjtyjtjyjtjtj</td></tr></table>")

IF oRec2.PageCount > 1 THEN 

FOR a = 1 to oRec2.PageCount
IF a <> cINT( nextPage ) THEN 
Response.Write "&nbsp;<a href='ladda_trad.asp?nextPage="& a &"'>[ "& a &" ]</a>&nbsp;"
ELSE 
Response.Write "&nbsp;<b>"& a & "</b>&nbsp;"

END IF 
NEXT 
END IF

Set oConn = NOTHING
Set oRec2 = NOTHING
Set strSQL2 = NOTHING
%>

första sidan skrivs ut klockrent, men blir det fler sidor olch man trycker på¨nästföljande sida, så får jag felmesset:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'ID ='.
/ec/script/forum/fritt/ladda_trad.asp, line 37

Det skumma är att det den klagar på är den FÖRSTa SQLäen, den som plockar ut den första frågan, från tabellen den inte ska köra paging på.

Hur ska jag bära mig åt för att lösa detta?

Känner mig hyffsat hjälplös utan er, med tanke på att jag inte är ngn pro på ASP.

Medlem sedan feb. 20034 441 inlägg
#2

Fast nu meckade jag till det rejält, HaHa, jag klarade det utan ngn proffessionell hjälp ;)

Nu funakr bara paginen på svaren, vilket är lysande, för då blir effekten att frågan hela tiden finns högst upp, vilket i sin tur är K A N O N ! ! !

Medlem sedan dec. 20003 887 inlägg
#3

Ett tips är att du använder dig av OleDB istället för ODBC.

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../db/forum_db.mdb")
Medlem sedan sep. 20026 425 inlägg
#4

..och ett ännu bättre tips: använd dig av GetRows(). ;)

Medlem sedan feb. 20034 441 inlägg
#5

Okej, din sida där (dileno) fastnade bland mina favoriter ;)

För / Nackdelar med det här då``??

För nu funark det ju, vilket innebär att jag är nöjd, men kalrt, om jag kan göra det bättre och stabilare är ju det bara positivt.

Medlem sedan juni 20014 421 inlägg
#6

Fördelar är väl att du kan öppna databasen lägga in posterna i en array och sstänga den nästan direkt...Alltså en väldigt kort belastning på servern.

Nackdelar är att de kan vara svårt att arbeta med om man inte är van, detkan även ta ett tag och lära sig...

Medlem sedan feb. 20034 441 inlägg
#7

Det är just det, har aldrig ngnsin jobbat med det, dessutom är tiden knapp, så tills vidare kör jag på det jag hr, men det är absolut ngt att tänka på i framtiden, tack så mkt.

278 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)