| ²é¿´: 283 | »Ø¸´: 1 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
lfl_jeetoonͳæ (³õÈëÎÄ̳)
|
[½»Á÷]
º£Á¿Êý¾Ý¿âµÄ²éѯÓÅ»¯¼°·ÖÒ³Ëã·¨·½°¸
|
||
|
´ó¼ÒÖªµÀSQL SERVERµÄ´æ´¢¹ý³ÌÊÇÊÂÏȱàÒëºÃµÄSQLÓï¾ä£¬ËüµÄÖ´ÐÐЧÂÊÒª±Èͨ¹ýWEBÒ³Ãæ´«À´µÄSQLÓï¾äµÄÖ´ÐÐЧÂÊÒª¸ß¡£ÏÂÃæµÄ´æ´¢¹ý³Ì²»½öº¬ÓзÖÒ³·½°¸£¬»¹»á¸ù¾ÝÒ³Ãæ´«À´µÄ²ÎÊýÀ´È·¶¨ÊÇ·ñ½øÐÐÊý¾Ý×ÜÊýͳ¼Æ¡£ -- »ñȡָ¶¨Ò³µÄÊý¾Ý CREATE PROCEDURE pagination3 @tblName varchar(255), -- ±íÃû @strGetFields varchar(1000) = '*', -- ÐèÒª·µ»ØµÄÁÐ @fldName varchar(255)='', -- ÅÅÐòµÄ×Ö¶ÎÃû @PageSize int = 10, -- Ò³³ß´ç @PageIndex int = 1, -- Ò³Âë @doCount bit = 0, -- ·µ»Ø¼Ç¼×ÜÊý, ·Ç 0 ÖµÔò·µ»Ø @OrderType bit = 0, -- ÉèÖÃÅÅÐòÀàÐÍ, ·Ç 0 ÖµÔò½µÐò @strWhere varchar(1500) = '' -- ²éѯÌõ¼þ (×¢Òâ: ²»Òª¼Ó where) AS declare @strSQL varchar(5000) -- Ö÷Óï¾ä declare @strTmp varchar(110) -- ÁÙʱ±äÁ¿ declare @strOrder varchar(400) -- ÅÅÐòÀàÐÍ if @doCount != 0 begin if @strWhere !='' set @strSQL = "select count(*) as Total from [" + @tblName + "] where "+@strWhere else set @strSQL = "select count(*) as Total from [" + @tblName + "]" end --ÒÔÉÏ´úÂëµÄÒâ˼ÊÇÈç¹û@doCount´«µÝ¹ýÀ´µÄ²»ÊÇ0£¬¾ÍÖ´ÐÐ×ÜÊýͳ¼Æ¡£ÒÔϵÄËùÓдúÂë¶¼ÊÇ@doCountΪ0µÄÇé¿ö else begin if @OrderType != 0 begin set @strTmp = "<(select min" set @strOrder = " order by [" + @fldName +"] desc" --Èç¹û@OrderType²»ÊÇ0£¬¾ÍÖ´ÐнµÐò£¬Õâ¾äºÜÖØÒª£¡ end else begin set @strTmp = ">(select max" set @strOrder = " order by [" + @fldName +"] asc" end if @PageIndex = 1 begin if @strWhere != '' set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where " + @strWhere + " " + @strOrder else set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["+ @tblName + "] "+ @strOrder --Èç¹ûÊǵÚÒ»Ò³¾ÍÖ´ÐÐÒÔÉÏ´úÂ룬ÕâÑù»á¼Ó¿ìÖ´ÐÐËÙ¶È end else begin --ÒÔÏ´úÂ븳ÓèÁË@strSQLÒÔÕæÕýÖ´ÐеÄSQL´úÂë set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "(["+ @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["+ @fldName + "] from [" + @tblName + "]" + @strOrder + " as tblTmp)"+ @strOrderif @strWhere != '' set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from [" + @tblName + "] where [" + @fldName + "]" + @strTmp + "([" + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " [" + @fldName + "] from [" + @tblName + "] where " + @strWhere + " " + @strOrder + " as tblTmp) and " + @strWhere + " " + @strOrderend end exec (@strSQL) GO ¡¡¡¡ÉÏÃæµÄÕâ¸ö´æ´¢¹ý³ÌÊÇÒ»¸öͨÓõĴ洢¹ý³Ì£¬Æä×¢ÊÍÒÑдÔÚÆäÖÐÁË¡£ Óиö¸½¼þÊǹØÓÚ±¾¹ý³ÌµÄÏêϸ˵Ã÷¡£ |
» ²ÂÄãϲ»¶
366Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
²ÄÁϹ¤³Ì085601£¬270Çóµ÷¼Á
ÒѾÓÐ37È˻ظ´
279ѧ˶ʳƷרҵÇóµ÷¼ÁԺУ
ÒѾÓÐ18È˻ظ´
290µ÷¼ÁÉúÎï0860
ÒѾÓÐ31È˻ظ´
Ò»Ö¾Ô¸085802 323·ÖÇóµ÷¼Á
ÒѾÓÐ13È˻ظ´
277Çóµ÷¼Á
ÒѾÓÐ23È˻ظ´
322Çóµ÷¼Á£¬08¹¤¿Æ
ÒѾÓÐ4È˻ظ´
²ÄÁϹ¤³Ì281»¹Óе÷¼Á»ú»áÂð
ÒѾÓÐ30È˻ظ´
»¯Ñ§070300 Çóµ÷¼Á
ÒѾÓÐ16È˻ظ´
»¯¹¤Ñ§Ë¶294·Ö£¬Çóµ¼Ê¦ÊÕÁô
ÒѾÓÐ12È˻ظ´
lfl_jeetoon
ͳæ (³õÈëÎÄ̳)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 184.5
- Ìû×Ó: 17
- ÔÚÏß: 35·ÖÖÓ
- ³æºÅ: 294540
- ×¢²á: 2006-11-10
- ÐÔ±ð: GG
- רҵ: ¼ÆËã»úÍøÂç
2Â¥2007-12-05 14:39:56













as tblTmp)"+ @strOrder
»Ø¸´´ËÂ¥