熟女少妇中出一区二区三区-亚洲欧洲人妻中文字幕-日韩黄片一级免费观看-人妻少妇一区二区三区在线

歡迎訪問世紀網(wǎng)絡(luò)官網(wǎng),寶雞網(wǎng)站建設(shè)SEO優(yōu)化已累計服務(wù)超過900家企業(yè)!     咨詢熱線:13619273150

15年網(wǎng)站建設(shè)優(yōu)化經(jīng)驗,900家客戶的選擇,值得信賴!


ASP基礎(chǔ)講座(下)

作者:佚名      發(fā)布時間:2009-06-22      瀏覽:2489

62.9K


ASP基礎(chǔ)講座(下)

當我們需要同瀏覽器交互的時候,有時少不了數(shù)據(jù)庫。因為只有用數(shù)據(jù)庫才可能大量、快速地處理信息。使用ASP不僅意味著你可以讀取Access和SQL Server的數(shù)據(jù)庫,同時也意味著你可以讀取其它ODBC(Open Database Connect,開放式數(shù)據(jù)庫互聯(lián))兼容的數(shù)據(jù)庫。為了在ASP中訪問數(shù)據(jù)庫,我們將接觸一個新名詞——ADO(Active Data Object,活動數(shù)據(jù)對象)。
  ADO是一種操作Microsoft所支持的數(shù)據(jù)庫的方法,有些類似于以前在VB中聽說過的DAO(Data Access Object,數(shù)據(jù)訪問對象)和RDO(Remote Data Object,遠程數(shù)據(jù)對象)。在ASP中,ADO可以看作是一個服務(wù)器組件(Server Component),更簡單點說,是一系列的對象,應(yīng)用這些功能強大的對象,即可輕松完成對數(shù)據(jù)庫復(fù)雜的操作。在這里我們所要學(xué)的是使用這些對象的方法,具體的操作步驟可以歸納為以下幾步:
  (一)創(chuàng)建數(shù)據(jù)庫源名(DSN)
  (二)創(chuàng)建數(shù)據(jù)庫鏈接(Connection)
  (三)創(chuàng)建數(shù)據(jù)對象
  (四)操作數(shù)據(jù)庫
  (五)關(guān)閉數(shù)據(jù)對象和鏈接
  下面具體敘述每一步的作法:
  一、創(chuàng)建數(shù)據(jù)源名
  用ODBC時,經(jīng)常見到DSN這個名詞,它究竟是什么,有什么重要作用呢?DSN(Date Source Name)即數(shù)據(jù)源名稱。我們知道,ODBC是一種訪問數(shù)據(jù)庫的方法,只要系統(tǒng)中有相應(yīng)的ODBC驅(qū)動程序,任何程序就可以通過ODBC操縱驅(qū)動程序的數(shù)據(jù)庫。比如我們系統(tǒng)中有Access的ODBC驅(qū)動程序,那么即使我們沒有Access軟件,也可以在我們的程序(如VB編的)中間對一個Access的MDB數(shù)據(jù)庫加、刪、改記錄。而且我們根本不用知道這個數(shù)據(jù)庫是放在哪里的。我們只要寫出SQL語句,ODBC驅(qū)動程序就會幫我們做一切事情。我們在給ODBC驅(qū)動程序傳SQL指令時,即是用DSN來告訴它到底操作的是哪一個數(shù)據(jù)庫。如果數(shù)據(jù)庫的平臺變了,比如我們改用了SQL Server的數(shù)據(jù)庫,只要其中表的結(jié)構(gòu)沒變,我們就不用改寫我們的程序,只要重新在系統(tǒng)中配置DSN就行了。由此可見,DSN是應(yīng)用程序和數(shù)據(jù)庫之間的橋梁,要通過ODBC訪問數(shù)據(jù)庫,前提就是我們必須配置好DSN(即架好橋梁)。一個DSN必須包含一些信息:
  DSN的名字:就是給這座橋取個名字,當程序訪問數(shù)據(jù)庫時,給系統(tǒng)傳的就是這個名字,而不是數(shù)據(jù)庫的實際名稱。
  ODBC驅(qū)動程序類型:只有指出驅(qū)動程序類型,在我們操作數(shù)據(jù)庫時,系統(tǒng)才會知道調(diào)哪個ODBC驅(qū)動程序來服務(wù)。
  數(shù)據(jù)庫:你必須指定這座橋到底連接的是哪個數(shù)據(jù)庫,但不同的數(shù)據(jù)庫系統(tǒng),指定數(shù)據(jù)庫名字的方法有些不同。
  這座橋是架在系統(tǒng)之中的,所以WIN95(NT)提供了一個工具來完成這件事,即是控制面板中的32 BIT ODBC,共有三類,即用戶DSN、系統(tǒng)DSN、文件DSN。我們一般就用系統(tǒng)DSN,因為這樣可以讓所有在該系統(tǒng)上操作的人都能使用這個DSN。
  打開Windows的“控制面板”,找到圖標“32位ODBC)”(有一些系統(tǒng)上叫“ODBC”、“32bit ODBC”),雙擊,出現(xiàn)(如圖一)對話框,選中標簽“系統(tǒng)DSN”,點擊“新建”,選驅(qū)動程序為Microsoft Access MDB,單擊“完成”,彈出對話框(如圖二),輸出“Data Source Name”為“dsn1”,單擊“OK”,再單擊“選擇數(shù)據(jù)庫”,選中你要使用的數(shù)據(jù)庫,例如“C:b1.mdb”,這樣就OK了。以后我們就用“dsn1”來訪問數(shù)據(jù)庫“c:b1.mdb”,而不直接用文件名“C:b1.mdb”,這樣做的好處是,一旦我們改變了文件名或存放地,就不用再一個一個地修改程序中所有該數(shù)據(jù)庫的名稱,而只需修改DSN中的配置就可以了。
  二、創(chuàng)數(shù)據(jù)庫鏈接(Connection)
  用過VB的人都知道,DAO中有鏈接(Connection),RDO中有odo Connection。鏈接用以保持一些關(guān)于正在訪問的數(shù)據(jù)的一些狀態(tài)信息,以及鏈接者信息。ASP文件中如果要訪問數(shù)據(jù),必須首先創(chuàng)建與數(shù)據(jù)庫的鏈接,其語法如下:
  set Mconn=Server createObject(“ADOBDCONNECTION”)
  這條語句創(chuàng)建了鏈接對象mConn,接下來:
  mConn.Open “dsn1”,“vsername”,“password”
  這條語句打開鏈接,用到了DSN,本例為“dsn1”。其后的兩個參數(shù)分別是訪問數(shù)據(jù)庫的用戶名和口令,為可選參數(shù)。
  注意:必須有以上兩個小步驟,因為鏈接對象的創(chuàng)建與打開是兩回事,只有打開了才真正可以用。
  三、創(chuàng)建數(shù)據(jù)對象(Record Set)
  ADO中的數(shù)據(jù)對象通常保存的是查詢結(jié)果。Record Set是ADO中最復(fù)雜的對象,有許多屬性和方法,靈活運用,可以達到許多好的效果。與DAO中的一樣,Record Set保存的是一行行的記錄,并標有一個當前記錄。以下是創(chuàng)建方法:
  Set Record Set=mConn.Execute(sqtStr)
  這條語句創(chuàng)建并打開了對象Record Set,其中mCon是先前創(chuàng)建的鏈接對象,sqtStr是一個串,代表一條標準的SQL語句,例如:
  sqlStr=“SELECT * FROM tab1”
  Set Record Set=mConn.Exe cute(sqlStr)
  這條語句執(zhí)行后,對象Record Set中就保存了表tab1中的所有記錄。在ASP文件中如何引用返回結(jié)果,本文將在文末給出一個實例說明。
  四、操作數(shù)據(jù)庫
  剛才我們通過調(diào)用鏈接對象的Execute方法來將查詢結(jié)果返回給一個數(shù)據(jù)對象。我們說Execute方法的參數(shù)是一個標準的SQL語句串,所以我們可以利用它方便地執(zhí)行數(shù)據(jù)插入、修改、刪除等操作,例如:
  sqlStr=“INSERT INTO tab1 VALUES(1,2)”
  mConn.Execute(sqlStr)
  /執(zhí)行插入操作
  sqlStr=“UPDATE tab1 SET field1=3”
  mConn.Execute(sqlStr)
  /執(zhí)行修改操作
  五、關(guān)閉數(shù)據(jù)對象和鏈接對象
  在使用了ADO對象之后,一定要記住關(guān)閉它,因為它使用了一定的服務(wù)器資源。通過調(diào)用方法close實現(xiàn)關(guān)閉,然后再釋放它。
  Record Set.close
  Set Record Set=Nothing
  /關(guān)閉創(chuàng)建的數(shù)據(jù)對象
  mConn.close
  Set mConn=Nothing
  /關(guān)閉創(chuàng)建的鏈接對象
  至此,我們已給出了用ASP訪問數(shù)據(jù)庫的全過程,包括創(chuàng)建數(shù)據(jù)源-創(chuàng)建鏈接-創(chuàng)建數(shù)據(jù)對象-操作數(shù)據(jù)對象-關(guān)閉并釋放。這其間由于應(yīng)用面向?qū)ο笏枷?,?yīng)該說所有操作都比較簡單,用戶需要注意的僅是對數(shù)據(jù)結(jié)構(gòu)的了解,亦要清楚當前所操作的對象是什么,有什么屬性,等等。只要對這些有了清醒的認識,再加上ASP的強大功能,在網(wǎng)絡(luò)上應(yīng)用你自己的數(shù)據(jù)庫,就再也不是什么難事了!
  本文最后給出一個例子,這是基于數(shù)據(jù)庫的ASP留言簿程序,數(shù)據(jù)庫結(jié)構(gòu)如下:
  guestbook.mdb
  表lyb:
  xm char(100), ly char(255) , sj datetime
  文件guestbook.asp:
  
  
  lyb
  
  
  

留言簿


  

  
  

姓名:


  

留言:


  


  

  VALUE=“復(fù)原” NAME=“B2”>


  

  <%
  Set conn = Server.CreateObject(“ADODB.Connection”)
  conn.Open “l(fā)ybdsn”,“”,“”
  If Request(“task”)=“insert” then
  xm=Request(“xm”)
  sj = Date()
  sj = sj & “ ” & Hour(Time()) & “:” & Minute(Time())
  If Request(“l(fā)y”)=“” then
  Response.write(“留言不能不輸吧”)
  Response.end
  else
  ly=Request(“l(fā)y”)
  end if
  sql=“INSERT INTO lyb (xm,sj,ly) VALUES ('” & xm & “','” & sj & “','” & ly & “') ”
  conn.execute sql
  End If
  sql = “SELECT * FROM lyb ORDER BY sj DESC”
  Set rs = conn.Execute(sql) %>
  <% On Error Resume Next
  rs.MoveFirst
  do while Not rs.eof %>
  

  姓名:<%=Server.HTMLEncode(rs.Fields(“xm”).Value)%>

  留于:<%=Server.HTMLEncode(rs.Fields(“sj”).Value)%>

  留言:<%=Server.HTMLEncode(rs.Fields(“l(fā)y”).Value)%>
  <% rs.MoveNext
  loop %>
  
  


0