|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件正则 5、总结
下面我们先容了正则表达式的基础观点,和在VBScript和JavaScript中怎样利用正则表达式,同时,经由过程一些实例让人人有了理性的熟悉。正则表达式的使用局限很广,能为人人办理良多实践中的成绩。本文先容的内容只是一些开端的常识,另有良多语律例则必要人人持续进修,在理论中发明成绩,办理成绩。前往顶部
怎样完成数据纪录的分页显现(DarkMan)
怎样完成数据纪录的分页显现(1)
经由过程Recordset的GetRows办法,能够完成数据纪录的分页显现。上面是一个完全的例子:
<%@Language=VBSCRIPT%>
<%OptionExplicit%>
<%
DimiStart,iOffset
iStart=Request("Start")
iOffset=Request("Offset")
ifNotIsNumeric(iStart)orLen(iStart)=0then
iStart=0
else
iStart=CInt(iStart)
endif
ifNotIsNumeric(iOffset)orLen(iOffset)=0then
iOffset=10
else
iOffset=Cint(iOffset)
endif
Response.Write"观察"&iOffset&"个纪录从"&iStart&"入手下手<BR>"
DimobjConn,objRS
SetobjConn=Server.CreateObject("ADODB.Connection")
objConn.Open"Provider=SQLOLEDB.1;DataSource=(local);uid=sa;pwd=;Initial Catalog=pubs"
SetobjRS=Server.CreateObject("ADODB.Recordset")
objRS.Open"SELECT*FROMAuthors",objConn
DimaResults
aResults=objRS.GetRows
objRS.Close
SetobjRS=Nothing
objConn.Close
SetobjConn=Nothing
DimiRows,iCols,iRowLoop,iColLoop,iStop
iRows=UBound(aResults,2)
iCols=UBound(aResults,1)
IfiRows>(iOffset+iStart)Then
iStop=iOffset+iStart-1
Else
iStop=iRows
EndIf
ForiRowLoop=iStarttoiStop
ForiColLoop=0toiCols
Response.WriteaResults(iColLoop,iRowLoop)&""
Next
Response.Write"<BR>"
Next
Response.Write"<P>"
ifiStart>0then
显现“前10个”毗连
Response.Write"<AHREF=""paging.asp?Start="&iStart-iOffset&_
"&Offset="&iOffset&""">前"&iOffset&"</A>"
endif
ifiStop<iRowsthen
显现“后10个”毗连
Response.Write"<AHREF=""paging.asp?Start="&iStart+iOffset&_
"&Offset="&iOffset&""">后"&iOffset&"</A>"
endif
%>
怎样完成数据的分页显现(2)
这里先容别的一种分页显现的办法,是经由过程MSSQL的存储历程。本办法不合用于Access数据库。
假定我们要对数据表MyTable的数据完成分页显现,起首写一个存储历程以下:
CREATEPROCEDUREsp_PagedItems
(
@Pageint,
@RecsPerPageint
)
AS
--加速表的拔出速率
SETNOCOUNTON
--入手下手纪录号
DECLARE@RecCountint
SELECT@RecCount=@RecsPerPage*@Page+1
--创立一时表
CREATETABLE#TempItems
(
IDintIDENTITY,
Namevarchar(50),
Pricecurrency
)
--筹办一时表
INSERTINTO#TempItems(Name,Price)
SELECTName,PriceFROMMyTableORDERBYPrice
--求出要查询的最小ID和最年夜ID
DECLARE@FirstRecint,@LastRecint
SELECT@FirstRec=(@Page-1)*@RecsPerPage
SELECT@LastRec=(@Page*@RecsPerPage+1)
--失掉实践的纪录,并前往是不是另有数据!
SELECT*,
MoreRecords=
(
SELECTCOUNT(*)
FROM#TempItemsTI
WHERETI.ID>=@LastRec
)
FROM#TempItems
WHEREID>@FirstRecANDID<@LastRec
--恢复设置
SETNOCOUNTOFF
在这个存储历程里,我们起首创立一个全体纪录的一时表,并增添了一个主动编号的字段ID。如许,分歧的纪录就有一个递增的独一标记。
依据以后的页号和每页的纪录数,能够盘算出每页的最小和最年夜的ID。从而失掉以后页的一切纪录。
为了显现的便利,存储历程还盘算了MoreRecords字段,作为显现下一页的判别前提。
使用了这个存储历程的程序代码以下:
<%
每页显现10条
ConstiRecordsPerPage=10
DimcurrentPage以后页号
DimbolLastPage在最初一页?
iflen(Request.QueryString("page"))=0then
currentPage=1
else
currentPage=CInt(Request.QueryString("page"))
endif
失掉以后页的纪录
strSQL="sp_PagedItems"¤tPage&","&iRecordsPerPage
objRS.OpenstrSQL,objConn
判别是不是在最初一页
ifNotobjRS.EOFthen
ifCInt(objRS("MoreRecords"))>0then
bolLastPage=False
else
bolLastPage=True
endif
endif
%>
<P>
</p>asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了! |
|