SQL = "SELECT * FROM news_novatech" set rs = Server.CreateObject("ADODB.Recordset") rs.Open SQL, conn, 1 If Not (rs.BOF Or rs.EOF) Then ...
Og lidt forklaring... Ved at lave et ADODB.Recordset får du mulighed for at bruge flere funktioner, men de funktioner skal være understøttet af Databasen. Der findes altså 2 metoder til at lave et recordset.
Den simple: set rs = Conn.execute(SQL)
Den udvidet: set rs = Server.CreateObject("ADODB.Recordset") rs.Open SQL, conn, 1
MySQL understøtter f.eks ikke de ekstra funktioner med ADODB.Recordset, så kommer du til at bruge den DB, er der ingen grund til at bruger den udvidet metode. Det er også derfor at et MySQL paging script ser anderledes ud, end det du du har her :o)
fennec >> jeg mener ikke paging fungerer hvis du opretter recordsettet med conn.execute (det har vist noget med cursortypen eller locktypen at gøre). At MySQL ikke understøtter paging på samme måde som f.eks. access og SQL Server har du nok ret i (det har jeg ikke nogen erfaring med).
Kan være fordi du får et tomt resultat: Set objRs = Conn.Execute("SELECT COUNT(*) AS records FROM tabel;") if isNumeric(objRs("records")) then intRecords = cInt(objRs("records")) else intRecords = 0 end if
ok et sidste problem kan ik rigtig få frem og tilbage til at virke.
testen kommer bare frem men det bliver ik lavet til et link, har brugt koden som er postet i kommentar der inde:
'Tilbage IF intPage > 1 THEN Response.Write "<a href='index.asp?section=ShowSubCategories&page=" & intpage - 1 & "'>Forige</a>" ELSE Response.Write "Forige" END IF
'Frem IF intPage < intPageCount THEN Response.Write "<a href='index.asp?section=ShowSubCategories&page=" & intpage + 1 & "'>Næste</a>" ELSE Response.Write "Næste" END IF
'Udskriver en "sideliste" For i = 1 to intPages - 1 if i = intPage then Response.Write "<b>" & i & "</b> " else Response.Write "<a href=""paging.asp?page=" & i & """>" Response.Write i Response.Write "</a> " end if next
'Først skal vi have antallet af poster Set objRs = Conn.Execute("SELECT COUNT(*) AS records FROM news_novatech;")
if isNumeric(objRs("records")) then intRecords = cInt(objRs("records")) else intRecords = 0 end if objRs.Close Set objRs = Nothing
'Variabler til query´et intPage = Request.QueryString("page") if intPage = "" OR not isNumeric(intPage) then intPage = int(1) else intPage = int(intPage) end if intPageSize = int(5) intStart = intPage*intPageSize intStart = intStart-intPageSize intPages = int(intRecords/intPageSize)+1
Set objRs = Conn.Execute("SELECT * FROM news_novatech LIMIT " & intStart & ", " & intPageSize & ";")
if objRs.EOF or objRs.BOF then Response.Write "no posts" else Response.Write "<table border=""1"" cellpadding=""3"">" Response.Write "<tr>" Response.Write "<td><b>id</b></td>" Response.Write "<td><b>Site</b></td>" Response.Write "</tr>"
Do until objRs.EOF Response.Write "<tr>" Response.Write "<td>" & objRs("id") & "</td>" Response.Write "<td>" & objRs("Name") & "</a></td>" Response.Write "</tr>" objRs.MoveNext Loop Response.Write "</table>" end if
objRs.Close Set objRs = Nothing
'Tilbage IF intPage > 1 THEN Response.Write "<a href='index.asp?section=ShowSubCategories&page=" & intpage - 1 & "'>Forige</a>" END IF
'Frem IF intPage < intPageCount THEN Response.Write "<a href='index.asp?section=ShowSubCategories&page=" & intpage + 1 & "'>Næste</a>" END IF
'Udskriver en "sideliste" For i = 1 to intPages if i = intPage then Response.Write "<b>" & i & "</b> " else Response.Write "<a href=""paging.asp?page=" & i & """>" Response.Write i Response.Write "</a> " end if next
Kunne se ud som om problemet opstår oppe ved count(). Prøv at ændre koden til:
Set objRs = Conn.Execute("SELECT COUNT(*) AS antal FROM news_novatech;") if isNumeric(objRs("antal")&"") then intRecords = cInt(objRs("antal")&"") response.write "1. Her" else intRecords = 0 response.write "2. Her" end if
Den skulle helst udskrive "1. Her". Altså komme ind i førstedel af if'en :o)
Problemet hang sammen med eagleeye's kommentar 11:26:36 angående "Automation type", som gjorde at isNumeric() returnerede false. Det problem har vi løst ved at typcaste resultatet til tekst.
Du vil opdage at &"" koden kan blive din ven i mange situationer :o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.