Jag har koden här: Du får beskriva hur du ska dela upp det. Jag hade tänkt fylla 15 rader per sida, fylls de så byter man sida och fortsätter på nästa sida.... jag har även försökt me... Jag tycker inte du borde räkna kategorierna. Dessutom bör du upprepa dem på nästa sida.MSDataShape i flera sidor
<code>
<%
const adOpenStatic=3, adLockOptimistic=3
Dim rsmain, rssub, cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=MSDataShape;" & _
"Persist Security Info=False;" & _
"Data Source=Behindbars;" & _
"User ID=sa;" & _
"Initial Catalog=Saarvirecords;" & _
"Data Provider=SQLOLEDB"
Set rsmain = Server.CreateObject("ADODB.Recordset")
rsmain.Open "SHAPE {SELECT kategoriID, kategorinamn FROM TBL_linkkat} AS Main" & vbCrLf & _
"APPEND ({SELECT ID, Linknamn, KategoriID, URL FROM TBL_links} AS Sub RELATE kategoriID TO KategoriID) AS Sub", cn
.
.
.
.
response.write "<table width=""100%"" height=""100%"" border=""0""_
cellpadding=""0"" cellspacing=""0"" align=""center"">"
do until rsmain.EOF
response.write "<tr>"
response.write "<td class=""lila"" height=""18"" width=""100%"">" & rsmain("kategorinamn") & "</td>"
response.write "</tr>"
Set rsSub = rsMain("Sub").Value
Do Until rsSub.EOF
response.write "<tr>"
response.write "<td width=""100%"" height=""15"">"target=""_blank"">" & rssub("linknamn") & "</td>"
response.write "</tr>"
rssub.movenext
loop
rsmain.movenext
loop
rsmain.close
rssub.close
cn.close
set rsmain = Nothing
set rssub = Nothing
set cn = Nothing
response.write "</table>"
%>
</code>
Och jag är tvungen att dela upp recordsetet i flera sidor. Jag har prövat med de varianterna som finns på sidan, klurat med de men inte fått till det. Skulle någon kunna hjälpa mig med det?Sv: MSDataShape i flera sidor
T.Ex.
Om man har följnde data och vill begränsa till fem poster per sida.
Frukt
* Banan
* Äpple
* Apelsin
* Kiwi
* Ananas
* Vattenmelon
Grönsaker
* Morot
* Potatis
* Majs
* Isberssallad
* Tomater
* Paprika
Sida 1
Frukt
* Banan
* Äpple
* Apelsin
* Kiwi
* Ananas
Sida 2
Frukt
* Vattenmelon
Grönsaker
* Morot
* Potatis
* Majs
* Isberssallad
Sida 3
Grönsaker
* Tomater
* Paprika
Det är då enklare att Använda en fråga och en join och köra tradition paging mot den.Sv: MSDataShape i flera sidor
Alltså....
1 Grönsaker
2 Morot
3 potatis
4 sallad
5 vitt kål
6 - tom rad-
7 frukt
8 bananer
9 äpple
10 apelsin
11 päron
12 annanas
13 -tom rad-
14 -tom rad-
15 sidonummer (länk)
Sida två
1 kiwi
2 klementin
3 -tom rad-
4 övrigt
5 tonfisk
6 kyckling
...
15 sidonummer
Nått sånt hade jag tänkt mig...Sv: MSDataShape i flera sidor
<code>
<%
const adOpenStatic=3, adLockOptimistic=3
const CONN_STRING = "Provider=SQLOLEDB;Data Source=Behindbars; Initial Catalog=Saarvirecords;"
Dim rs, cn, strSQL, page, rowcount, pagecounter
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
cn.Open CONN_STRING, "sa", ""
StrSQL = "select tbl_linkkat.kategorinamn as Kategori, tbl_links.linknamn as link, tbl_links.url as linkurl" & vbcrlf & _
"from tbl_linkkat, tbl_links where tbl_linkkat.kategoriid = tbl_links.kategoriid"
''strsql="select * from tbl_linkkat"
rs.Open strSQL,cn, adopenstatic, adLockOptimistic
.
.
.
do while not rs.EOF
response.write "<tr>"
response.write "<td class=""lila"" height=""18"" width=""100%"">" _
& rs("kategori")& "</td>"
response.write "</tr>" & vbcrlf
response.write "<tr>"
response.write "<td width=""100%"" height=""15""> & " target=""_blank"">" & rs("link") & "</td>"
response.write "</tr>"
rs.MoveNext
loop
</code>
för att sedan lägga till en vanlig paging... men då får jag resultatet:
grönsak
morot
grönsak
potatis
grönsak
paprika
frukt
banan
etc...
hur skriver man den rätta joinen???
tack för er hjälp...Sv: MSDataShape i flera sidor
<code>
<%
Const adUseClient = 3
Const adOpenStatic = 3
Const adLockReadOnly = 1
const CONN_STRING = "Provider=SQLOLEDB;Data Source=Behindbars; Initial Catalog=Saarvirecords;"
Dim Page
Dim PageCount
Const PageSize = 15
Dim rs, cn, strSQL
Dim KategoriID
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open CONN_STRING, "sa", ""
strSQL = "SELECT tbl_linkkat.KategoriID, tbl_linkkat.kategorinamn as Kategori, tbl_links.linknamn as link, tbl_links.url as linkurl" & vbCrLf & _
"FROM tbl_linkkat LEFT JOIN tbl_links ON tbl_linkkat.kategoriid = tbl_links.kategoriid" & vbCrLf & _
"ORDER BY tbl_linkkat.kategorinamn, tbl_linkkat.kategoriID, tbl_links.linknamn"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.PageSize = PageSize
rs.CursorLocation = adUseClient
rs.Open strSQL, cn, adOpenStatic, adLockReadOnly
If rs.EOF Then
Response.Write "No records Found!"
Else
Page = "" & Request.QueryString("Page")
PageCount = rs.PageCount
If IsNumeric(Page) Then
Page = CLng(Page)
If Page < 1 Then
Page = 1
Else
Page = PageCount
End If
Else
Page = 1
End If
objRS.AbsolutePage = Page
Do
If KategoriID <> rs("KategoriID") Then
response.write "<tr>"
response.write "<td class=""lila"" height=""18"" width=""100%"">" _
& rs("kategori")& "</td>"
response.write "</tr>" & vbcrlf
KategoriID = rs("KategoriID")
End If
response.write "<tr>"
response.write "<td width=""100%"" height=""15"">& " target=""_blank"">" & rs("link") & "</td>"
response.write "</tr>"
Counter = Counter + 1
rs.MoveNext
Loop Until rs.EOF Or Counter >= Counter
For Counter = 1 To PageCount
If Counter = Page Then
Response.Write "<B>" & Counter "</B>"
Else
Response.Write "" & Counter & ""
End If
Next
End If
</code>