<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 5, comments - 2, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    2010年3月27日

    limit 一般用于經(jīng)常要返回前幾條或者中間某幾行數(shù)據(jù)的查詢語句語句中,具體格式如下:
    SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset
    LIMIT 子句可以被用于強制 SELECT 語句返回指定的記錄數(shù)。LIMIT 接受一個或兩個數(shù)字參數(shù)。參數(shù)必須是一個整數(shù)常量。如果給定兩個參數(shù),第一個參數(shù)指定第一個返回記錄行的偏移量,第二個參數(shù)指定返回記錄行的最大數(shù)目。初始記錄行的偏移量是 0(而不是 1)
     舉例說明:
         mysql> SELECT * FROM table LIMIT 5,10;  // 檢索記錄行 6-15

    //為了檢索從某一個偏移量到記錄集的結(jié)束所有的記錄行,可以指定第二個參數(shù)為 -1: 
    mysql
    > SELECT * FROM table LIMIT 95,-1// 檢索記錄行 96-last.

    //如果只給定一個參數(shù),它表示返回最大的記錄行數(shù)目: 
    mysql
    > SELECT * FROM table LIMIT 5;     //檢索前 5 個記錄行

    //換句話說,LIMIT n 等價于 LIMIT 0,n。

    而如果想要實現(xiàn)從數(shù)據(jù)庫的最后一條倒序讀出固定的信息條數(shù),則可用:
    select * from tablename where(后加條件) order by (條件) desc limit (固定條數(shù)) ;
    例如:如果想從表hello中讀出10條以id形式排列的classID數(shù)為0的信息。可寫為:
    select * from hello where classID=0 order by id desc limit 10;
    在sql語句中,limit的功能很強大,使用的地方很多,所以要多注意,使用它能夠很大的節(jié)省代碼數(shù),讓代碼看起來簡潔明了

    posted @ 2010-03-29 13:40 趙春平 閱讀(716) | 評論 (0)編輯 收藏

    今天在網(wǎng)上查找信息的時候看的這個帖子,我相信以后他會給我很大的幫助,所以我將有用的都留了下來,希望可以對自己和大家都有一定的幫助。這里有兩個方法:
    第一種:(ASP分頁顯示)
     一、將數(shù)據(jù)庫中所有符合查詢條件的記錄一次性的都讀入   recordset   中,存放在內(nèi)存中,然后通過   ADO   Recordset   對象所提供的幾個專門支持分頁處理的屬性:   PageSize(   頁大小   )、   PageCount(   頁數(shù)目   )   以及AbsolutePage(   絕對頁   )   來管理分頁處理。  
      二、根據(jù)客戶的指示,每次分別從符合查詢條件的記錄中將規(guī)定數(shù)目的記錄數(shù)讀取出來并顯示。  
      兩者的主要差別在于前者是一次性將所有記錄都讀入內(nèi)存然后再根據(jù)指示來依次做判斷分析從而達到分頁顯示的效果,而后者是先根據(jù)指示做出判斷并將規(guī)定數(shù)目的符合查詢條件的記錄讀入內(nèi)存,從而直接達到分頁顯示的功能。  
      我們可以很明顯的感覺到,當數(shù)據(jù)庫中的記錄數(shù)達到上萬或更多時,第一種方法的執(zhí)行效率將明顯低于第二種方法,因為當每一個客戶查詢頁面時都要將所有符合條件的記錄存放在服務器內(nèi)存中,然后在進行分頁等處理,如果同時有超過   100   個的客戶在線查詢,那么   ASP   應用程序的執(zhí)行效率將大受影響。但是,當服務器上數(shù)據(jù)庫的記錄數(shù)以及同時在線的人數(shù)并不是很多時,兩者在執(zhí)行效率上是相差無幾的,此時一般就采用第一種方法,因為第一種方法的   ASP   程序編寫相對第二種方法要簡單明了得多。  
      在這里作者就以我們常見的   ASP   BBS   程序為例,來給大家分析一下如何在   BBS   程序里實現(xiàn)分頁顯示功能,由于我們一般使用的   BBS   程序的數(shù)據(jù)庫記錄數(shù)和同時訪問的人數(shù)都不會太多,所以以下程序?qū)嵗鞘褂玫南惹八榻B的第一種分頁顯示方法。  
      進行   ADO   存取數(shù)據(jù)庫時的分頁顯示,其實就是對   Recordset   的記錄進行操作。所以我們首先必須了解   Reordset   對象的屬性和方法:  
      BOF   屬性:目前指標指到   RecordSet   的第一筆;  
      EOF   屬性:目前指標指到   RecordSet   的最后一筆;    
      Move   方法:移動指標到   RecordSet   中的某一條記錄;  
      AbsolutePage   屬性:設定當前記錄的位置是位于哪一頁;  
      AbsolutePosition   屬性:目前指標在   RecordSet   中的位置;  
      PageCount   屬性:顯示   Recordset   對象包括多少“頁”的數(shù)據(jù);    
      PageSize   屬性:顯示   Recordset   對象每一頁顯示的記錄數(shù);  
      RecordCount   屬性:顯示   Recordset   對象記錄的總數(shù)。  
       
      下面讓我們來詳細認識一下這些重要的屬性和方法  
      一、BOF與EOF屬性  
      通常我們在ASP程序中編寫代碼來檢驗BOF與EOF屬性,從而得知目前指標所指向的   RecordSet的位置,使用BOF與EOF屬性,可以得知一個   Recordset   對象是否包含有記錄或者得知移動記錄行是否已經(jīng)超出該Recordset   對象的范圍。  
      如:   <   %   if   not   rs.eof   then   ...   %>    
      <   %   if   not   (rs.bof   and   rs.eof)   %>    
      若當前記錄的位置是在一個   Recordset   對象第一行記錄之前時,   BOF屬性返回   true,反之則返回   false。  
      若當前記錄的位置是在一個   Recordset   對象最后一行記錄之后時,   EOF   屬性返回   true,反之則返回   false。  
      BOF與EOF都為False:表示指標位于   RecordSet   的當中。  
      BOF為   True:目前指標指到   RecordSet   的第一筆記錄。  
      EOF為   True:目前指標指到   RecordSet   的最后一筆記錄。  
      BOF與   EOF   都為   True:在   RecordSet   里沒有任何記錄。  
       
      二、   Move   方法  
      您可以用   Move   方法移動指標到   RecordSet   中的某一筆記錄,語法如下:  
      rs.Move   NumRecords,Start  
      這里的“rs”為一個對象變量,表示一個想要移動當當前記錄位置的Recordset   對象;“NumRecords”是一個正負數(shù)運算式,設定當前記錄位置的移動數(shù)目;“start”是一個可選的項目,用來指定記錄起始的標簽。  
      所有的   Recordset   對象都支持   Move   方法,如果   NumRecords   參數(shù)大于零,當前記錄位置向末尾的方向移動;如果其小于零,則當前記錄位置向開頭的方向移動;如果一個空的   Recordset   對象調(diào)用   Move   方法,將會產(chǎn)生一個錯誤。  
      MoveFirst   方法:將當前記錄位置移至第一筆記錄。  
      MoveLast   方法:將當前記錄位置移至最后一筆記錄。  
      MoveNext   方法:將當前記錄位置移至下一筆記錄。  
      MovePrevious   方法:將當前記錄位置移至上一筆記錄。  
      Move   [n]   方法:移動指標到第   n   筆記錄,   n   由   0   算起。  
       
      三、   AbsolutePage   屬性    
      AbsolutePage   屬性設定當前記錄的位置是位于哪一頁的頁數(shù)編號;  
      使用   PageSize   屬性將   Recordset   對象分割為邏輯上的頁數(shù),每一頁的記錄數(shù)為   PageSize(   除了最后一頁可能會有少于   PageSize   的記錄數(shù)   )。這里必須注意并不是所有的數(shù)據(jù)提供者都支持此項屬性,因此使用時要小心。  
      與   AbsolutePosition   屬性相同,   AbsolutePage   屬性是以   1   為起始的,若當前記錄為   Recordset   的第一行記錄,   AbsolutePage   為   1。可以設定   AbsolutePage   屬性,以移動到一個指定頁的第一行記錄位置。  
       
      四、   AbsolutePosition   屬性  
      若您需要確定目前指標在   RecordSet   中的位置,您可以用AbsolutePosition   屬性。  
      AbsolutePosition   屬性的數(shù)值為目前指標相對於第一筆的位置,由1算起,即第一筆的   AbsolutePosition   為   1。  
      注意   ,   在存取   RecordSet   時,無法保證   RecordSet   每次都以同樣的順序出現(xiàn)。  
      若要啟用   AbsolutePosition,必須先設定為使用用戶端cursor(   指針   ),   asp   碼如下:  
      rs2.CursorLocation   =   3    
       
      五、   PageCount   屬性  
      使用   PageCount   屬性,決定   Recordset   對象包括多少“頁”的數(shù)據(jù)。這里的“頁”是數(shù)據(jù)記錄的集合,大小等于   PageSize   屬性的設定,即使最后一頁的記錄數(shù)比   PageSize   的值少,最后一頁也算是   PageCount   的一頁。必須注意也并不是所有的數(shù)據(jù)提供者都支持此項屬性。  
       
      六、   PageSize   屬性  
      PageSize   屬性是決定   ADO   存取數(shù)據(jù)庫時如何分頁顯示的關(guān)鍵,使用它就可以決定多少記錄組成一個邏輯上的“一頁”。設定并建立一個頁的大小,從而允許使用   AbsolutePage   屬性移到其它邏輯頁的第一條記錄。  
      PageSize   屬性能隨時被設定。  
       
      七、   RecordCount   屬性  
      這也是一個非常常用和重要的屬性,我們常用   RecordCount   屬性來找出一個   Recordset   對象包括多少條記錄。如:  
      <   %   totle=RS.RecordCount   %>    
      在了解了   Recordset   對象的以上屬性和方法后,我們來考慮一下,如何運用它們來達到我們分頁顯示的目的。首先,我們可以為   PageSize   屬性設置一個值,從而指定從記錄組中取出的構(gòu)成一個頁的行數(shù);然后通過RecordCount   屬性來確定記錄的總數(shù);再用記錄總數(shù)除以   PageSize   就可得到所顯示的頁面總數(shù);最后通過   AbsolutePage   屬性就能完成對指定頁的訪問。





    第二種:

    比如建立這樣一個簡單的   BBS   應用程序,它的數(shù)據(jù)庫中分別有以下五個字段:“ID”,每個帖子的自動編號;“subject”,每個帖子的主題;  
      “name”,加帖用戶的姓名;“email”,用戶的電子郵件地址;  
      “postdate”,加帖的時間。數(shù)據(jù)庫的   DSN   為“bbs”。我們將顯示帖子分頁的所有步驟放在一個名為“ShowList()”的過程中,方便調(diào)用。  
      程序如下:  
      '----BBS   顯示帖子分頁----  
      <   %   Sub   ShowList()   %>    
      <   %    
      PgSz=20   '設定開關(guān),指定每一頁所顯示的帖子數(shù)目,默認為20帖一頁    
      Set   Conn   =   Server.CreateObject("ADODB.Connection")    
      Set   RS   =   Server.CreateObject("ADODB.RecordSet")    
      sql   =   "SELECT   *   FROM   message   order   by   ID   DESC"    
      '查詢所有帖子,并按帖子的ID倒序排列  
      Conn.Open   "bbs"    
      RS.open   sql,Conn,1,1  
      If   RS.RecordCount=0   then    
      response.write   "<   P><   center>對不起,數(shù)據(jù)庫中沒有相關(guān)信息!  
      <   /center><   /P>"    
      else    
      RS.PageSize   =   Cint(PgSz)   '設定PageSize屬性的值  
      Total=INT(RS.recordcount   /   PgSz   *   -1)*-1   '計算可顯示頁面的總數(shù)    
      PageNo=Request("pageno")    
      if   PageNo=""   Then    
      PageNo   =   1    
      else    
      PageNo=PageNo+1  
      PageNo=PageNo-1    
      end   if    
      ScrollAction   =   Request("ScrollAction")    
      if   ScrollAction   =   "   上一頁   "   Then    
      PageNo=PageNo-1    
      end   if  
      if   ScrollAction   =   "   下一頁   "   Then    
      PageNo=PageNo+1    
      end   if    
      if   PageNo   <   1   Then  
      PageNo   =   1    
      end   if  
      n=1  
      RS.AbsolutePage   =   PageNo  
      Response.Write   "<   CENTER>"  
      position=RS.PageSize×PageNo    
      pagebegin=position-RS.PageSize+1    
      if   position   <   RS.RecordCount   then    
      pagend=position    
      else  
      pagend=   RS.RecordCount    
      end   if  
      Response.Write   "<   P><   font   color='Navy'><   B>數(shù)據(jù)庫查詢結(jié)果:<   /B>"    
      Response.Write   "(共有"&RS.RecordCount   &"條符合條件的信息,    
      顯示"&pagebegin&"-"&pagend&")<   /font><   /p>"    
      Response.Write   "<   TABLE   WIDTH=600   BORDER=1   CELLPADDING=4    
      CELLSPACING=0   BGCOLOR=#FFFFFF>"    
      Response.Write   "<   TR   BGCOLOR=#5FB5E2><   FONT   SIZE=2><   TD>    
      <   B>主題<   /B><   /TD><   TD><   B>用戶<   /B><   /TD><   TD><   B>Email<   /B>    
      <   /TD><   TD><   B>發(fā)布日期<   /B><   /TD><   /FONT><   TR   BGCOLOR=#FFFFFF>"    
      Do   while   not   (RS   is   nothing)    
      RowCount   =   RS.PageSize    
      Do   While   Not   RS.EOF   and   rowcount   >   0    
      If   n=1   then    
      Response.Write   "<   TR   BGCOLOR=#FFFFFF>"    
      ELSE    
      Response.Write   "<   TR   BGCOLOR=#EEEEEE>"    
      End   If    
      n=1-n   %>  
      <   TD><   span   style="font-size:9pt">    
      <   A   href='view.asp?key=<   %   =RS("ID")%>'><   %   =RS("subject")%>    
      <   /A><   /span><   /td>    
      <   TD><   span   style="font-size:9pt">    
      <   %   =RS("name")%><   /A><   /span><   /td>    
      <   TD><   span   style="font-size:9pt">    
      <   a   href="mailto:<   %   =RS("email")%>"><   %   =RS("email")%><   /a>    
      <   /span>   <   /TD>    
      <   TD><   span   style="font-size:9pt">    
      <   %   =RS("postdate")%><   /span>   <   /td>    
      <   /TR>  
      <   %    
      RowCount   =   RowCount   -   1    
      RS.MoveNext    
      Loop    
      set   RS   =   RS.NextRecordSet    
      Loop    
      Conn.Close  
      set   rs   =   nothing    
      set   Conn   =   nothing    
      %>    
      <   /TABLE>    
      <   FORM   METHOD=GET   ACTION="list.asp">    
      <   INPUT   TYPE="HIDDEN"   NAME="pageno"   VALUE="<   %   =PageNo   %>">    
      <   %    
      if   PageNo   >   1   Then  
      response.write   "<   INPUT   TYPE=SUBMIT   NAME='ScrollAction'    
      VALUE='   上一頁   '>"    
      end   if    
      if   RowCount   =   0   and   PageNo   <   >Total   then    
      response.write   "<   INPUT   TYPE=SUBMIT   NAME='ScrollAction'    
      VALUE='   下一頁   '>"    
      end   if  
      response.write   "<   /FORM>"    
      End   if    
      %>    
      <   %   End   Sub   %>    
       
      相信大家都應該能完全讀懂上面的程序,因此就不在此詳細解釋了。值得注意的是在這段程序中運用了一個小技巧   <   INPUT   TYPE="HIDDEN"   NAME="pageno"   VALUE="<   %   =PageNo   %>">,這是用來在每次調(diào)用該ASP   文件時傳遞數(shù)據(jù)的“暗道”,由于我們需要在每次調(diào)用程序時傳遞代表當前頁碼的參數(shù),可能大家會想到使用   session,但是從節(jié)省系統(tǒng)資源和通用性來講,用這樣一個隱藏的   form   來傳遞數(shù)據(jù)將會達到更好的效果。   
        
     

    posted @ 2010-03-28 21:10 趙春平 閱讀(1421) | 評論 (0)編輯 收藏

    最近幾天,測試jsp是否能夠運行時很多情況下都會遇到500錯誤,所以我去找了一下出錯的原因,總結(jié)了一下
    1、運行的用戶數(shù)過多,對服務器造成的壓力過大,服務器無法響應,則報HTTP500錯誤。

    減小用戶數(shù)或者場景持續(xù)時間,問題得到解決。

    2、該做關(guān)聯(lián)的地方?jīng)]有去做關(guān)聯(lián),則報HTTP500錯誤。進行手工或者自動關(guān)聯(lián),問題得到

    解決。

    3、錄制時請求的頁面、圖片等,在回放的時候服務器找不到,則報HTTP500錯誤,若該頁

    面無關(guān)緊要,則可以在腳本中注釋掉,問題將會得到解決。例如:有驗證碼的情況下,盡

    管測試時已經(jīng)屏蔽了,但是錄制的時候提交了請求,但回放的時候不存在響應。

    4、參數(shù)化時的取值有問題,則報HTTP500錯誤。可將參數(shù)化列表中的數(shù)值,拿到實際應用

    系統(tǒng)中進行測試,可排除問題。

    5、更換了應用服務器(中間件的更換,如tomcat、websphere、jboss等),還是利用原

    先錄制的腳本去運行,則很可能報HTTP500錯誤。因為各種應用服務器處理的機制不一樣

    ,所錄制的腳本也不一樣,解決辦法只有重新錄制腳本。

    6、Windows xp2 與ISS組件不兼容,則有可能導致HTTP500錯誤。對ISS組件進行調(diào)整后問

    題解決。

    7、系統(tǒng)開發(fā)程序?qū)懙挠袉栴},則報HTTP500錯誤。例如有些指針問題沒有處理好的,有空

    指針情況的存在。修改程序后問題解決。
    8、如果測試中所進行的操作需要向數(shù)據(jù)庫中插入數(shù)據(jù),若大數(shù)據(jù)量的情況下導致數(shù)據(jù)庫中表空間已滿,或者

    緩沖池較小無法滿足數(shù)據(jù)的存取等,都有可能導致HTTP500錯誤。調(diào)整數(shù)據(jù)庫、修改連接池大小,問題解決。
    、、、、、、、、、、、、、、
    500錯誤出現(xiàn)的原因太多了,對于我來說,出現(xiàn)500錯誤很都情況下都是代碼里有些關(guān)聯(lián)沒有做,然后導致出錯,當然還有一小部分是有時候不注意,服務器開的時間過長,導致服務器崩潰,總之,很多地方都需要注意

    posted @ 2010-03-27 20:58 趙春平 閱讀(2675) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: fc2成年免费共享视频18| 国产妇乱子伦视频免费| 久久久久亚洲精品成人网小说 | 日本高清不卡中文字幕免费| 亚洲人成无码网WWW| h片在线免费观看| 国产偷国产偷亚洲高清在线| 亚洲国产欧洲综合997久久| 亚洲国产精品激情在线观看| 美丽的姑娘免费观看在线播放 | 又黄又大又爽免费视频| 免费A级毛片无码专区| 亚洲乱码日产精品一二三| 亚洲精品制服丝袜四区| 成人毛片手机版免费看| 97无码人妻福利免费公开在线视频 | 久久91亚洲人成电影网站| 成人免费男女视频网站慢动作| 中国一级特黄高清免费的大片中国一级黄色片 | 中文字幕av无码无卡免费| 一级毛片试看60分钟免费播放 | 国产一级片免费看| 无码天堂亚洲国产AV| 亚洲精品国产电影午夜| 久久久久亚洲AV无码专区网站| 四虎国产精品免费久久| 三年片在线观看免费西瓜视频| 国产精品亚洲av色欲三区| 亚洲一区二区三区亚瑟| 亚洲AV无码成人精品区蜜桃| jizzjizz亚洲| 大学生高清一级毛片免费| 91麻豆国产免费观看| 在线观看人成视频免费无遮挡| 亚洲AV色欲色欲WWW| 亚洲国产夜色在线观看| 久久夜色精品国产亚洲AV动态图| 亚洲av手机在线观看| 啦啦啦www免费视频| 日本在线高清免费爱做网站| 久久狠狠躁免费观看|