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

ASP開發中數據庫文件調用的捷徑

2013-11-13 10:13:04  來源: .NET編程 

  引言
  
  本文針對ASP程序設計中最基礎也是最關鍵的部分數據庫文件的調用進行說明同時談談ASP程序設計中數據庫文件調用的一些技巧
  
  ASP簡介
  
  ASP(Active Server Pages)是微軟於年推出的Web應用程序開發技術它是一種腳本語言ActiveX組件及HTML語言等的綜合微軟把它描述為一個服務器的腳本環境在這裡可以生成和運行動態的交互的高性能的Web服務器應用程序其主要功能是為生成動態的交互式的Web服務器應用程序提供一種功能強大的方式或技術其特點是命令和腳本都在服務器中解釋執行然後送到客戶端浏覽器的內容只是標准的HTML頁面其優點是程序設計簡單易懂而且方便快捷ASP在國內的應用已非常普遍相當一部分的動態網站都運用了ASP技術
  
  ASP數據庫文件的調用
  
  雖然不同的系統可能安裝不同的數據庫驅動程序但一般的服務器系統都基本支持IIS/所以服務器系統上至少會有Microsoft Access DriverMicrosoft ODBC for OracleSQL Server等種數據庫驅動程序因此服務器系統至少可以使用AccessOracleSQL Server等種數據庫來從事ASP網頁數據庫設計由於Microsoft Access /屬於微軟的Office系列之一且界面和Office系列軟件相似學習起來基本沒什麼障礙因此本文將從初學者入門的角度使用Access數據庫文件來進行ASP程序設計
  
  通過Access應用程序制作如圖的數據庫文件(friendmdb)
  

  

  
  那麼ASP程序設計中調用該數據庫文件有兩種方式一種為直接在控制面板數據源(ODBC)上進行手工設置另外一種是編程通過相對路徑調用數據庫文件這種方式可適用在任何一台服務器上而不用再進行配置第一種方式較為簡單安全本文所談的是第二種方式
  
  下面列出ASP程序設計中一般讀取數據庫文件中表記錄的方法
  
   <HTML><BODY>
   <!#include file=adovbsinc
   <%
    使用ASP的Connection 對象打開數據庫數據庫文件為上圖的<Friendmdb>
    Dim objConn
    Set objConn=ServerCreateObject(ADODBConnection)
    objConnConnectionString=Provider=MicrosoftJetOLEDB; &_
      Data Source= & ServerMapPath(Friendmdb)
    objConnOpen
    讀取data表的記錄然後存放在Record set對象
    Dim objRS
    Set objRS=ServerCreateObject(ADODBRecordset)
    ObjRSOpen dataobjConnadOpenKeysetadLockOptimisticadCmdTable
    將目前指針所指到的記錄顯示在浏覽器上
    If Not objRS EOF then
     ResponseWrite 編號&objRS(編號)& <BR>
     Response Write 姓名&objRS(姓名)& <BR>
     Response Write 性別&objRS(性別)& <BR>
    Else
     ResponseWrite 到達數據庫的結尾已經顯示完所有符合條件的記錄
    End If
     關閉數據庫連接並釋放對象實例
     ObjRS Close
     Set objRS=Nothing
     ObjConnClose
     Set objConn=Nothing
   %>
   </BODY></HTML>
  
  上述代碼為ASP編程中一般打開Access數據庫文件的設計步驟
  
  數據庫文件調用的技巧
  
  ()事實上無論換成哪個Access數據庫打開數據庫連接與讀取表記錄的步驟是相同的其中的變量在於數據庫文件的名稱及表的名稱所以可以將上述程序的第行改寫成函數的形式並存成一個文件如ADOFunctionsasp日後要打開某個數據庫文件的話就把該文件ADOFunctionsasp 裝(include)進來代碼如下
  
  <%
  Dim objConn
  變量Filename為數據庫文件名變量Table Name為表名
  Function GetRecordset(FileNameTableName)
  使用ASP的Connection 對象打開數據庫
  Set objConn=ServerCreateObject(ADODBConnection)
  objConnConnectionString=Provider=MicrosoftJetOLEDB; &_
  Data Source= & ServerMapPath(Filename)
  objConnOpen
  讀取表的記錄然後存放在Record set對象objRS
  Dim objRS
  Set objRS=ServerCreateObject(ADODBRecordset)
  ObjRSOpen TableNameobjConnadOpenKeysetadLockOptimisticadCmdTable
  End Function
  %>
  
  由上述代碼可知函數名為GetRecordSet其返回值是存放了表記錄的Record set對象實例存成文件名為ADOFunctionsasp現在利用該文件就可以讀取任何數據庫文件的記錄了如一般讀取數據庫的編程可簡化如下
  
  <HTML><BODY>
  <! #Include file=adovbsinc
  <! #include file=ADOFunctionsasp
  <%
  調用GetRecordset函數取得一個Record set對象實F例然後指派給變量objRS
  Dim objRS
  Set objRS=GetRecordset(Friendmdbdata)
  將目前指針所指到的記錄顯示在浏覽器上
  If Not objRSEOF Then
  ResponseWrite 編號&objRS(編號)& <BR>
  ResponseWrite 姓名&objRS(姓名)& <BR>
  ResponseWrite 性別&objRS(性別)&<BR>
  Else
  ResponseWrite 到達數據庫的結尾已經顯示完所有符合條件的記錄
  End If
  關閉數據庫連接並釋放對象實例
  ObjRS Close
  Set objRS=Nothing
  ObjConnClose
  Set objConn=Nothing
  %>
  </BODY></HTML>
  
  因此只要在這句代碼Set objRS=GetRecordset(Friendmdb data)中改變數據庫名稱和表名稱就可以調用任何Access數據庫文件了當然要注意的是後面的數據庫中每個表的字段名一定要匹配
  
  ()另外無論換成哪個Access數據庫打開數據庫連接與篩選表記錄的步驟也是相同的其中的變量在於SQL語句(如SELECT * FROM data數據庫文件的名稱及表的名稱因此同樣道理可以將這個變量作為函數的參數撰寫GetSQLRecordset函數並存成文件名為ADOSQLFunctionsasp日後要用到的話只要在程序的最前面把這個文件Include進來就可以利用GetSQLRecordset函數打開數據庫連接同時也進行篩選表記錄該函數的返回值是存放了符合SQL語句的Record set對象實例
  
  代碼如下
  
  <%
  Dim objConn
  Dim GetSQLRecordset
  Function GetSQLRecordset(strSQLFileNameTableName)
  使用ASP的Connection 對象打開數據庫
  
  Set objConn=ServerCreateObject(ADODBConnection)
  objConnConnectionString=Provider=MicrosoftJetOLEDB; &_
  Data Source= & ServerMapPath(Filename)
  objConnOpen
  從表讀取符合SQL語句的記錄並存放在Record set對象
  Set GetSQLRecordset=ServerCreateObject(ADODBRecordset)
  GetSQLRecordsetOpen_ strSQLobjConnadOpenKeysetadLockOptimisticadCmdText
  End Function
  %>
  
  上述代碼中函數名稱為GetSQLRecordset文件名為ADOSQLFunctionsasp
  
  現在利用該文件就可以調用任何Access數據庫的連接同時對表記錄進行篩選的操作以Friendmdb文件為例列出表data中所有的記錄程序代碼如下
  
  <HTML><BODY>
  <!#include file=adovbsinc
  <!#include file=ADOSQLFunctionsasp
  <%
  Dim objRS
  Set objRS=GetSQLRecordset(SELECT 編號姓名性別from_ dataFriendmdbdata)
  Do While Not objRSEOF
  ResponseWrite 編號&objRS(編號)&<BR>
  ResponseWrite 姓名&objRS(姓名)&<BR>
  ResponseWrite 性別&objRS(性別)&<BR>
  Loop
  
  objRSClose
  Set objRS=Nothing
  ObjConnClose
  Set objConn=Nothing
  %>
  </BODY></HTML>
  
  小結
  
  在ASP編程中利用好函數往往可以對我們的程序代碼簡單明了化讀取條理也容易維護同時也可避免大量的重復繁雜的代碼像上述的情況若只是簡單的與數據庫連接則用第一種情況將文件ADORecordsetasp 裝(include)進來就可以了若要對數據庫中某個表的記錄進行篩選或其他SQL語句操作則用第二種情況將文件ADOSQLRecordsetasp裝進來就可以了
From:http://tw.wingwit.com/Article/program/net/201311/12951.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.