Forumkod till emission

ASP

8 svar · 235 visningar · startad av Ricki

Medlem sedan juni 2000373 inlägg
Trådstart#1

Hej Emission,
Här kommer koden på forumet... :) :) :)

		<%
		'--------------------------------------------------
		' Öppna databasen
		'--------------------------------------------------
		password = "xxx"
		databas = "xxx.mdb"
		DBPath = Server.Mappath(mid(Request.ServerVariables("PATH_INFO"),1,instrrev(Request.ServerVariables("PATH_INFO"), "\")) & databas)
		Set MinCon=Server.CreateObject("ADODB.Connection")
		MinCon.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & DBPath & ";uid=;pwd=" & password & ";"

		Sub VisaBarnMeddelanden(Forelder,Niva)

			'-------------------------------------------------------
			' Kolla vilken sida man befinner sig på
			'-------------------------------------------------------
			minSida = Request.Querystring("vilkenSida")
			If minSida = "" Then
				minSida = 1
			End If

			minSidaSize = 20

			'-------------------------------------------------------
			' Skapa recorsetet
			'-------------------------------------------------------
			Dim databas
			Set databas = Server.CreateObject("ADODB.Recordset")

			'-------------------------------------------------------
			' Ändra några värden i recorst
			'-------------------------------------------------------
			databas.cursorlocation = 3
			databas.cachesize = 1

			'-------------------------------------------------------
			' Öppna sql, recordset
			'-------------------------------------------------------
			SQL = "SELECT * From FORUM WHERE Forelder=" & Forelder & " ORDER BY Datum DESC"
			databas.Open SQL, MinCon, 1, 2

				'--------------------------------------------------------
				' Fler värden i recordset
				'--------------------------------------------------------
				databas.MoveFirst
				databas.PageSize = minSidaSize

				Maxcount = Cint(databas.PageCount)
				databas.AbsolutePage = minSida

				howmanyrecs = 0
				howmanyfields = databas.Fields.Count-1

			Do While Not databas.EOF And howmanyrecs < databas.pagesize

				Response.Write "<tr>"
				Response.Write "<td>"

				For slinga = 1 to Niva
					Response.Write "&nbsp;&nbsp;"
				Next

				Response.Write "<a href='forum.asp?id=lasa&nr=" & databas("MeddelandeID") & "'>" & databas("Amne") & "</a>"
				Response.Write "</td>"

				Response.Write "<td nowrap>" & databas("Postare") & "</td>"
				Response.Write "<td nowrap>" & FormatDateTime(databas("Datum"),2) & "</td>"
				Response.Write "</tr>"
	

				VisaBarnMeddelanden databas("MeddelandeID"),Niva+1
				databas.MoveNext
				howmanyrecs = howmanyrecs + 1

			Loop

			databas.Close
			Set databas = nothing

		End Sub
		%>

		<table border="0" width="99%" cellpadding="0" cellspacing="0">
		  <tr>
		    <td width="60%"><strong>Meddelanden</strong></td>
		    <td width="20%"><strong>Postat av</strong></td>
		    <td width="20%"><strong>Datum</strong></td>
		  </tr>

		<%
		'--------------------------------------------------
		' Anropa subben
		'--------------------------------------------------
		VisaBarnMeddelanden 0,0
		%>

		</table>

		<%
		'--------------------------------------------------------
		' Skriv ut navigeringsmenyn för vilken sida man e på
		'--------------------------------------------------------
		If MaxCount <> 0 Then
			Response.Write "Du befinner dig på sida <b>" & minSida & "</b> av <b>" & maxcount & "</b> - Till: "
			Pad = "0"
			Scriptname = Request.Servervariables("script_name")

			For Counter = 1 To maxcount
				If Counter => 10 Then
					Pad = ""
				End If

				Ref = "<a href=" & Scriptname & "?vilkenSida=" & Counter & "&pagesize=" & minSidaSize & "&id=main>" & Counter & "</a>"

				If Not cStr(minSida) = cStr(Counter) Then
					Response.Write "<b>" & Ref & "</b> "
				Else
					Response.Write "<b>" & minSida & "</b> "
				End If

				If Counter Mod 10 = 0 Then
					Response.Write "<br>"
				End If

			Next

		End If
		%>

Tack på förhand!! ;)

Medlem sedan juni 2000373 inlägg
#2

Jag får detta felmeddelande:

ADODB.Recordset fel '800a0bcd'
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats; åtgärden som programmet begärt kräver en aktuell post.

/Rickard/ricki2/forum.asp, rad 113

Medlem sedan dec. 19998 577 inlägg
#3

Är rad 113 denna: databas.MoveFirst?

Bädda in detta i:

If NOT databas.EOF then

Medlem sedan juni 2000373 inlägg
#4

Jag tror inte det, men jag ska testa... :)

Medlem sedan dec. 19998 577 inlägg
#5

När nånting är EOF när du kör en .MoveFirst så betyder ju det att det inte finns några poster som matchar din sökning... vad innehåller variabeln foralder???

Medlem sedan juni 2000373 inlägg
#6

Det var den raden, du hade rätt,m :)
Jag testade att lägga den innanför do while not databas.EOF, men funkar ändå ej....

Medlem sedan dec. 19998 577 inlägg
#7

Nje, nej... movefirst gör ju så att markören till recordsettet lägger sig på första posten, och den måste ju ligga före det att du börjar loopa igenom posterna...

Vad innehåller variabeln foralder?

Medlem sedan juni 2000373 inlägg
#8

I loopen gör man ju detta:

VisaBarnMeddelanden databas("MeddelandeID"),Niva+1

Så forelder innehåller ett id, typ 64, 36, 28 mm.

Medlem sedan dec. 19996 721 inlägg
#9

1. Gör om skriptet så att de avancerade "paging"-funktionerna bara aktiveras på 0-nivån, dvs. när det är ett rotmeddelande.

2. Variabeln "databas" är redan utnyttjad utanför subben. Byt namn på någon av dem.

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