熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

用ASP調用SQL Server的視圖和存儲過程

2013-11-15 14:43:11  來源: SQL Server 

  
  
    一前言
  
    ASP (Active Server Pages) 是服務器端的腳本編寫環境它由微軟公司的IIS以上版本支持它可用來創建動態 Web 頁或生成功能強大的 Web應用程序ASP頁是包括 HTML 標記文本和腳本命令的文件ASP頁可調用ActiveX組件來執行任務例如連接到數據庫或進行商務計算通過ASP可為您的Web頁添加交互內容或用HTML頁構成整個Web應用程序這些應用程序使用HTML頁作為您的客戶的界面
  
  二ASP模型
  
    如圖所示浏覽器從Web服務器上請求 asp文件時ASP 腳本開始運行然後Web服務器調用ASPASP全面讀取請求的文件執行所有腳本命令並將Web頁傳送給浏覽器
  
    ASP提供了一個在HTML頁中使用現有腳本語言如 Microsoft VBScript 和 Microsoft JScript 的框架
  
    ASP提供內建對象這些對象使用戶更容易收集通過浏覽器請求發送的信息響應浏覽器以及存儲用戶信息包括ApplicationRequestResponseServerSession 和ObjectContext 對象其中最為常用的為RequestResponse 和Server三個對象它們分別用於從浏覽器請求信息向浏覽器發送信息和訪問服務器上對象的屬性和方法
  
  三ADO
  
    ASP和後台數據庫連接使用微軟的ADO(ActiveX Data Objects)ADO是一項容易使用並且可擴展的將數據庫訪問添加到Web頁的技術可以使用ADO去編寫緊湊簡明的腳本以便連接到Open Database Connectivity(ODBC)兼容的數據庫和 OLE DB兼容的數據源
  
    ADO包含個內置對象它們分別為ConnectionCommandRecordSetFieldsErrorParameters和Properties通過這些對象ASP可以完成對後台數據庫的所有操作
  
  四ASP調用視圖和存儲過程
  
    在一般的MIS應用中會有大量的報表此時我們可以在後台數據庫編寫相應的視圖或存儲過程用ASP通過ADO調用以完成報表工作下面用一個例子說明相應的操作過程
  
  創建 ODBC DSN 文件
  
    在創建數據庫腳本之前必須提供一條使ADO定位標識和與數據庫通訊的途徑數據庫驅動程序使用Data Source Name (DSN) 定位和標識特定的ODBC兼容數據庫將信息從 Web 應用程序傳遞給數據庫
  
   調用數據庫視圖
  
    訪問數據庫信息的第一步是和數據庫源建立連接ADO提供Connection對象可以使用該對象建立和管理應用程序和 ODBC數據庫之間的連接
  <%
  Set Dataconn = Server.CreateObject("ADODB.Connection") '建立連接對象
  Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
  Set cmdTemp = Server.CreateObject("ADODB.Command") '建立命令對象
  Set rst= Server.CreateObject("ADODB.Recordset") '建立記錄集對象
  cmdTemp.CommandText = "Customers "
  cmdTemp.CommandType = 2
  Set cmdTemp.ActiveConnection = DataConn
  rst.Open cmdTemp, , 1, 3 '生成查詢結果
  %>
  
    此時Customers為視圖從視圖中查詢數據與從基表中查詢數據的方法是相同的
  
  調用數據庫存儲過程
  
  <%
  Set Dataconn = Server.CreateObject("ADODB.Connection") '建立連接對象
  Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
  Set cmdTemp = Server.CreateObject("ADODB.Command") '建立命令對象
  Set rst = Server.CreateObject("ADODB.Recordset") '建立記錄集對象
  cmdTemp.CommandText = "dbo.pd_test" '存儲過程名稱
  cmdTemp.CommandType = 4 '命令類別為4,表示為存儲過程
  Set cmdTemp.ActiveConnection = Dataconn
  Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)
  cmdTemp.Parameters.Append tmpParam
  Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)
  '創建輸入參數對象
  cmdTemp.Parameters.Append tmpParam
  rst.Open cmdTemp, , 1, 3 '生成查詢結果
  %>
    這裡調用的存儲過程為pd_test這種是ADO中提供的標准方法但存在一個問題就是當在存儲過程中有兩個以上的SELECT語句但從邏輯上又不可能同時執行的時候ADO會提示你存儲過程中SELECT語句太多解決方法是直接用ADO的CONNECTION對象的EXECUTE方法直接執行存儲過程如下
  <%
  Set Dataconn = Server.CreateObject("ADODB.Connection") '建立連接對象
  Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"
  ss = "EXECUTE dbo.pd_test " & "'" & riqi1 & "'"
  Set rs = dataconn.Execute(ss)
  %>
    有關ASP和ADO使用的詳細信息請參閱 Microsoft ActiveX Data Objects (ADO) 和Active Server Pages(ASP)的詳細參考
  五結束語
    在B/S結構的開發中我們可以把一些商業規則或復雜查詢用存儲過程在DBMS中編寫然後用ASP中的ADO對象調用完成原來C/S結構中的傳統功能

From:http://tw.wingwit.com/Article/program/SQLServer/201311/22230.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.