Avatar billede funstuff.dk Nybegynder
04. oktober 2001 - 19:07 Der er 9 kommentarer og
1 løsning

Vis kun 20 pr side..

Hej..

Hvordan laver man et udtræk fra en MS SQL database hvor den kun viser 20 pr side og så man kan trykke næste for at se de 20 næste....??

På forhånd tak..

Mvh
Morten
Avatar billede -sofus- Nybegynder
04. oktober 2001 - 20:00 #1
smid en Top 20 i din SQL string
Avatar billede funstuff.dk Nybegynder
04. oktober 2001 - 20:01 #2
Ja, men hvad så med den næste side???

Avatar billede -sofus- Nybegynder
04. oktober 2001 - 20:02 #3
doh! læste ikke hele spørgsmålet
Avatar billede tmceu Praktikant
04. oktober 2001 - 20:55 #4
Det du leder efter, kaldes Recordset paging og du kan se et eksempel herunder:

<%@ LANGUAGE=\"VBSCRIPT\" %>
<% \' Listing 17.1 Paging through a Recordset Part 1: Declaration
Option Explicit
Response.Expires = 0
%>
<!--#include file=\"adovbs.inc\"-->
<%
Const intPageSize = 10
Dim intCurrentPage, objConn, objRS, strQ
Dim intTotalPages, intI

\' Listing 17.2 Paging Part 2: Setting the Current Page Number
If Request.ServerVariables(\"CONTENT_LENGTH\") = 0 Then
  intCurrentPage = 1
Else
  intCurrentPage = CInt(Request.Form(\"CurrentPage\"))
  Select Case Request.Form(\"Submit\")
      Case \"Previous\"
        intCurrentPage = intCurrentPage - 1
      Case \"Next\"
        intCurrentPage = intCurrentPage + 1
  End Select
End If

\' Listing 17.3[em]Paging[md]Part 3: Preparing the Recordset for Paging
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open \"Data Source=Northwind;User ID=sa;Password=;\"

Set objRS = Server.CreateObject(\"ADODB.Recordset\")
objRS.CursorLocation = adUseClient
objRS.CursorType = adOpenStatic
objRS.CacheSize = intPageSize

\' Listing 17.4[em]Paging[md]Part 4: Opening the Recordset
strQ = \"SELECT Customers.CompanyName, Orders.OrderDate \"
strQ = strQ & \"FROM Orders INNER JOIN Customers ON \"
strQ = strQ & \"Orders.CustomerID = Customers.CustomerID \"
strQ = strQ & \"ORDER BY Orders.OrderDate, \"
strQ = strQ & \"Customers.CompanyName\"
objRS.Open strQ, objConn, , , adCmdText

\' Listing 17.5 Paging Part 5: Setting the Recordset cursor
objRS.PageSize = intPageSize
If Not(objRS.EOF) Then objRS.AbsolutePage = intCurrentPage

\' Listing 17.6 Paging Part 6: Sending Database Data
intTotalPages = objRS.PageCount
%>
<HTML><BODY>
<B>Customer: OrderDate</B><P>
<%
For intI = 1 to objRS.PageSize
  Response.Write Server.HTMLEncode(objRS(\"CompanyName\") & \":\" & objRS(\"OrderDate\")) & \"<BR>\"
  objRS.MoveNext
  If objRS.EOF Then Exit For
Next

objRS.Close : objConn.Close
Set objRS = Nothing : Set objConn = Nothing
%>

<BR>
Page <%= intCurrentPage %> of <%= intTotalPages %><P>

<% \' Listing 17.7 Paging Part 7: Providing Web Form for Paging %>
<FORM ACTION=\"<%= Request.ServerVariables(\"SCRIPT_NAME\") %>\" METHOD=\"POST\">
<INPUT TYPE=\"Hidden\" NAME=\"CurrentPage\"
VALUE=\"<%= intCurrentPage%>\">
<%
If intCurrentPage > 1 Then %>
<INPUT TYPE=\"Submit\" NAME=\"Submit\" VALUE=\"Previous\">
<% End If
If intCurrentPage <> intTotalPages Then %>
<INPUT TYPE=\"Submit\" NAME=\"Submit\" VALUE=\"Next\">
<% End If %>
</FORM>
</BODY></HTML>

Du kan også kigge her: http://www.activeserverpages.dk/aspdigital/kapitel2/paging.asp
Avatar billede funstuff.dk Nybegynder
04. oktober 2001 - 22:35 #5
Ok, men den på Activeserverpages.dk, hvordan laver man den om til sql??

Er remlig nybegynder ang ms sql..
Avatar billede tmceu Praktikant
04. oktober 2001 - 22:46 #6
Du skal bare lave strDSN om til din egen connectionstring for SQL Server. Hvad du skal lave den om til, kommer kommer an på hvordan du vil connect\'e til databasen, via DSN eller OLEDB. Her er et eksempel på en DSN-less (OLEDB provider) connectionstring

\"Provider=sqloledb;User ID=sa;Password=;Initial Catalog=DATABSE_NAVN;Data Source=SERVER_NAVN\"
Avatar billede funstuff.dk Nybegynder
05. oktober 2001 - 13:53 #7
SÅdan ser den conn ud jeg plejer at bruge:

Set Conn = Server.CreateObject(\"ADODB.Connection\")
ConStr = \"PROVIDER=SQLOLEDB; DATA SOURCE=\"& SQLServer
ConStr = ConStr &\";UID=\"& SQLUser &\";PWD=\"& SQLPass
ConStr = ConStr &\";DATABASE=\"& SQLDatabase &\";network=DBMSSOCN\"
Conn.Open ConStr
Avatar billede tmceu Praktikant
05. oktober 2001 - 15:27 #8
Så skal du erstatte linien herunder

strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"/aspdigital/db/demo.mdb\")

Med dette

ConStr = \"PROVIDER=SQLOLEDB; DATA SOURCE=\"& SQLServer
ConStr = ConStr &\";UID=\"& SQLUser &\";PWD=\"& SQLPass
ConStr = ConStr &\";DATABASE=\"& SQLDatabase &\";network=DBMSSOCN\"

Derefter laver du denne

rs.Open strSQL, strDSN, 1

om til

rs.Open strSQL, ConStr, 1
Avatar billede funstuff.dk Nybegynder
06. oktober 2001 - 20:30 #9
Takker...
Avatar billede tmceu Praktikant
07. oktober 2001 - 21:42 #10
Det var så lidt
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester