自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Jsp調(diào)用Sybase數(shù)據(jù)庫存儲過程返回記錄集

數(shù)據(jù)庫
在Jsp開發(fā)時,經(jīng)常會用到調(diào)用Sybase數(shù)據(jù)庫存儲過程返回記錄集,下文就為您舉例說明該功能的實現(xiàn)方法,供您參考借鑒。

Sybase數(shù)據(jù)庫存儲過程我們經(jīng)常會用到,下面就為您介紹Jsp調(diào)用Sybase數(shù)據(jù)庫存儲過程返回記錄集的方法,希望對您學(xué)習(xí)使用Sybase數(shù)據(jù)庫存儲過程方面能有所幫助。

源代碼如下:

  1. <%@page contentType="text/html;charset=GB2312"%> 
  2. <%@page import="javax.naming.*"%> 
  3. <%@page import="javax.sql.*"%> 
  4. <%@page import="java.sql.*"%> 
  5. <%  
  6.    int n = 20;  
  7.    Connection conn = null;  
  8.    CallableStatement stmt = null;  
  9.    ResultSet rs = null;  
  10.    Context ctx = null;  
  11.    try {  
  12.      ctx = new InitialContext();  
  13.    //獲取連接池對象  
  14.      DataSource ds = (DataSource) ctx.lookup("JNDITEST_150");//JNDITEST_150是weblogic數(shù)據(jù)源的名字  
  15.    //String strSql_p="GetDataByPage @SqlStr=\"select * from bzlist\", @PageSize=20, @CurrentPage=1";  
  16.    String sproc="{?=call GetDataByPage(?,?,?)}";  
  17.      conn = ds.getConnection();  
  18.      stmt=conn.prepareCall(sproc);  
  19.      stmt.setString(2,"select * from bzlist");  
  20.      stmt.setInt(3,20);  
  21.      stmt.setInt(4,1);   
  22.      rs=stmt.executeQuery();   
  23.       out.print("<Table border=1><tr><th>分類號<th>標準編號<th>標準名稱<th>文件路徑</tr>");  
  24.        while(rs.next()){  
  25.          out.print("<tr><td>" + rs.getString("flh") + "</td>");  
  26.          out.print("<td>" + rs.getString("bzbh") + "</td>");  
  27.          out.print("<td>" + rs.getString("bzmc") + "</td>");  
  28.          out.print("<td>" + rs.getString("path") + rs.getString("filenames") + rs.getString("ext") + "</td></tr>");  
  29.        }  
  30.      out.print("</table>");  
  31.      rs.close();  
  32.      stmt.close();  
  33.      conn.close();  
  34.    }  
  35.    catch (Exception e) {  
  36.      System.out.println("錯誤如下:<br>" + e);  
  37.      e.printStackTrace();  
  38.    }  
  39. %> 
  40.  

-----------------------------------------------------存儲過程如下:

  1. CREATE PROCEDURE GetDataByPage   
  2. (   
  3.      --創(chuàng)建一個分頁讀取過程   
  4. @SqlStr          varchar(8000), --SQL語句   
  5. @PageSize        int,    --每頁記錄數(shù)   
  6. @CurrentPage     int     --當前頁數(shù)   
  7. )   
  8. AS   
  9. DECLARE @FirstRec int, @LastRec int, @dt varchar(10) --頁起始行,頁結(jié)束行,生成臨時表的隨機數(shù)   
  10. BEGIN   
  11.  
  12. SELECT @FirstRec = (@CurrentPage - 1) * @PageSize --計算頁起始行   
  13. SELECT @LastRec = (@CurrentPage * @PageSize + 1) --計算頁結(jié)束行   
  14.     
  15. SELECT @dtsubstring(convert(varchar,rand()),3,10) --一個字符型的隨機數(shù)   
  16.  

--將搜索結(jié)果放入臨時表中,表名隨機生成,在' FROM '前插入'INTO '+隨機臨時表名 

  1. SELECT @SqlStr = stuff(@SqlStr, charindex(' FROM ',upper(@SqlStr)), 6 ,' INTO tempdb..Paging'+@dt+' FROM ')   
  2. EXECUTE (@SqlStr)   

 
--為臨時表增加id號 

  1. SELECT @SqlStr = 'ALTER TABLE tempdb..Paging'+@dt+' ADD TEMPDB_ID numeric(10) IDENTITY PRIMARY KEY'   
  2. EXECUTE (@SqlStr)   

 
--計算臨時表中的記錄數(shù) 

  1. --SELECT @SqlStr = 'SELECT Count(*) From tempdb..Paging'+@dt   
  2. --EXECUTE (@SqlStr)   

 
--選取記錄號在起始行和結(jié)束行中間的記錄 

  1. SELECT @SqlStr = 'SELECT * FROM tempdb..Paging'+@dt+' WHERE TEMPDB_ID > '+convert(varchar,@FirstRec)+' and TEMPDB_ID < '+convert(varchar,@LastRec)   
  2. EXECUTE (@SqlStr)   

 
--刪除臨時表

  1. SELECT @SqlStr = 'DROP TABLE tempdb..Paging'+@dt   
  2. EXECUTE (@SqlStr)    
  3.      
  4. END  

----------------------------------------------------另外寫了個取記錄數(shù)的存儲過程:

  1. CREATE PROCEDURE xdztest.GetDataCount  
  2. (  
  3.      @SqlStr varchar(8000)  
  4. )  
  5. AS  
  6. BEGIN  
  7. EXECUTE (@SqlStr)  
  8. END  
  9.    
  10.  

 

 

 

【編輯推薦】

sybase分頁存儲過程的實現(xiàn)

活用Sybase超級用戶密碼

Sybase數(shù)據(jù)災(zāi)難方案淺析

Sybase數(shù)據(jù)庫引擎運行方法簡介

Oracle數(shù)據(jù)庫如何正確訪問SYBASE數(shù)據(jù)

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-12-28 09:50:32

ADO數(shù)據(jù)庫

2011-02-25 17:47:44

數(shù)據(jù)庫存儲編寫

2011-08-29 15:52:19

SQL ServerMybatis存儲過程

2009-12-28 10:22:52

ADO Records

2009-12-24 16:32:00

ADO 記錄集

2010-05-07 13:03:01

Oracle通過存儲過

2011-05-17 15:30:27

Oracle數(shù)據(jù)庫ADO

2011-08-15 15:14:54

SQL Server存儲過程異常處理

2010-10-26 14:40:31

oracle存儲過程

2009-11-11 16:44:47

ADO記錄集

2017-09-03 15:41:31

數(shù)據(jù)庫存儲分布式

2010-11-29 09:45:30

Sybase分頁

2011-08-25 09:31:43

JDBC調(diào)用Oracl

2011-08-23 10:14:09

JDBC更新計數(shù)行調(diào)用存儲過程SQL Server

2010-10-26 14:27:30

oracle存儲過程

2010-11-29 15:25:39

Sybase存儲過程

2010-11-29 09:12:46

sybase分頁存儲過

2010-04-30 14:22:43

Oracle通過

2009-09-11 15:12:26

LINQ執(zhí)行存儲過程

2009-12-28 13:53:01

ADO.NET記錄集
點贊
收藏

51CTO技術(shù)棧公眾號