men jag lyckas inte få ut Antal från counten, hur hämtar jag värdet antal?
Jag använder inte en do loop utan arrays i pagingen, någon som vill hjälpa till?
Det blidde inte riktigt bra för jag avslutar Forslingan med det:
For I = intStartID To ((intStartID + intPageSize) -1)
strUsername = arrRecords(1,I)
MessId = arrRecords(2,I)
strSubject = arrRecords(3,I)
Replies = arrRecords(4,I)
dteDate = arrRecords(5,I)
strIcon = arrRecords(7,I)
LastUpdate = arrRecords(8,I)
antal = ubound(arrRecords,2)
Response.Write "Alla värden"
If I = UBound(arrRecords,2) Then Exit For
Next
Kan jag avsluta med If I = UBound(arrRecords,3) Then Exit For istället eller hur gör jag då?
jag antar att det är ett recordset du skapat en array av mha .getrows().
problemet är är alltså att din array (det som normalt är ett recordset) aldrig innehåller fler än 10 poster, så oberoende av hur många poster som uppfyller villkoren i sql-frågan är antal <=10 ?
' recordset för att hämta alla poster --
Set m_objRS = m_objConn.Execute(m_strSQL)
If Not m_objRS.EOF Then
m_arrRecords = m_objRS.GetRows
getRecords = m_arrRecords
End If
' hur många poster ska visas per sida --
intPageSize = 20
' hämta alla records, hämtas med metoden getrows och returneras
' som en array.
arrRecords = getRecords
' hur många records finns det totalt --
intTotalRecords = UBound(arrRecords,2)
' hur många sidor finns det i recordsetet
intTotalPages = countPages(intTotalRecords, intPageSize)
' vilken post är den första --
intStartID = getStartID(intPageSize, intPage)
Alltså bestämmer jag med intPageSize = 20 att 20 poster ska hämtas per sida.
' hur många poster ska visas per sida --
intPageSize = 20
' hämta alla records, hämtas med metoden getrows och returneras
' som en array.
arrRecords = getRecords
' hur många records finns det totalt --
intTotalRecords = UBound(arrRecords,2)
' hur många sidor finns det i recordsetet
intTotalPages = countPages(intTotalRecords, intPageSize)
' vilken post är den första --
intStartID = getStartID(intPageSize, intPage)
Alltså bestämmer jag med intPageSize = 20 att 20 poster ska hämtas per sida.
Använder du denna, den senaste funktionen att hämta posterna med:
'## -- hämta alla poster --
Function getRecords
Dim m_objConn
Dim m_strConnString
Dim m_strSQL
Dim m_objRS
Dim m_arrRecords
'## -- provider & sökväg till db, DSN etc. --
m_strConnString = "DSN"
'## -- skapa connection object och öppna upp databasen --
Set m_objConn = Server.CreateObject("ADODB.Connection")
m_objConn.Open m_strConnString
'## -- sql-fråga för att hämta alla poster --
m_strSQL = "SELECT MessId, ReplyId, [Date], Subject, Comment " & _
"FROM Debatt " & _
"WHERE MessId = " & Request("MessId") & _
"OR ReplyId = " & Request("MessId") & _
" ORDER BY [Date] ASC"
'## -- recordset för att hämta alla poster --
Set m_objRS = m_objConn.Execute(m_strSQL)
If Not m_objRS.EOF Then
m_arrRecords = m_objRS.GetRows
getRecords = m_arrRecords
End If
'## -- clean up --
m_objRS.Close
Set m_objRS = Nothing
m_objConn.Close
Set m_objConn = Nothing
End Function
om det är den ... så ska du inte använda TOP " & intPageSize & " i select uttrycket ..