個人首頁的資料庫ASP解決方案

來源:互聯網
上載者:User
個人首頁|解決|資料|資料庫       如今,CGI日漸衰落,ASP大行其道,大有取而代之之勢。對個人首頁製作者而言,CGI也確實太複雜了,尤其是在資料庫的操作上,繁複無比讓人望而生畏。相較而言, ASP則簡單得多。其物件導向的思想,將複雜的底層操作掩蓋,只留下簡單的調用介面。對資料庫的操作更是將它的優點體現得淋漓盡致。

  本文將簡單介紹在個人首頁中運用ASP串連資料庫,實現動態網頁。相信您在讀完本文後,您的首頁將更加精彩。

  1.在ASP中查詢ACCESS 資料庫

  ASP能讓我們用簡單的方法在網頁中查詢、更新資料庫。下面將給出的例子用的是MS ACCESS DATABASE,但是其操作的原理卻可同樣地運用在任何支援ODBC的資料庫上。(之所以選擇ACCESS,是因為它容易操作,且被廣泛使用,對大多數的中小型項目而言,ACCESS無疑是最好的選擇。)

  先用ACCESS建立一個資料表如下:

使用者編號姓名城市電話號碼1 張三武漢027-847138582 李四北京010-995814263 王五上海021-85541253
  再請看下面的一段例子:

<%
SET DBCONNECTION=SERVER.CREATEOBJECT(“ADODB.CONNECTION”)
DBCONNECTION.OPEN “DSNNAME”
SQLQUERY=“SELECT * FROM CUSTOMERS”
SET RECUSTIONMERLIST=DBCONNECTION.EXECUTE(SQLQUERY)
%>
< CENTER>
< TABLE BORDER=1>
< % DO WHILE NOT RECUSTOMERLIST.EOF %>
< TR>
< TD><%=RECUSTOMERLIST(“客戶編碼”)%>< /TD>
< TD><%=RECUSTOMERLIST(“姓名”)%>< /TD>
< TD><%=RECUSTOMERLIST(“城市”)%>< /TD>
< TD><%=RECUSTOMERLIST(“電話號碼”)%>< /TD>
< /TR>
< % RECUSTOMERLIST.MOVNEXT LOOP %>
< /TABLE>
< /CENTER> 


  可以看到,ASP的文法是VBSCRIPT,其物件導向的思想也與VB相類似,所以,只要您初通VB或者VBSCRIPT,那ASP可以很容易地上手。

  上面的一部分可以說是ASP中ADO的精髓所在,下面我們討論一下代碼的內容<%和%>是ASP代碼的開始和結束標誌。伺服器在返回使用者請求時,先將<%和%>中的內容解釋成為標準的html代碼,再將它發送到客戶瀏覽器。存取資料庫時,首先要建立串連,也就是聲明一個CONNECTION類的執行個體(對象),然後運用CONNECTION類的OPEN方法,將連線物件串連到一個ODBC資料來源上,在上例中就是DSNNAME,這是一個DSN。至於什麼是DSN,後面將有介紹,在此先按下不表。到此,資料庫的串連就已經完成了,下面要進行的是資料庫的操作。

  操作也是很簡單的,先定義一個SQL語句字串,然後調用CONNECTION的EXECUTE方法執行,執行的結果儲存在一個RECORDSET類(可以看成是一個臨時存放資料的表)的對象中,在上例中是RECUSTOMERLIST。這樣,資料庫的查詢調用也就完成了,再只需將它輸出即可。

  在DO WHILE ...LOOP的迴圈中輸出時,調用ASP中RESPOND對象的WRITE方法,一般可以簡寫為“=”。而語句RECUSTOMERLIST(欄位名)返回的是當前紀錄對應欄位的值。最後調用的是RECORDSET類的MOVENEXT方法,將紀錄指標移到下一個紀錄,反覆執行,直到RECUSTOMERLIST的EOF(檔案尾)為真。這樣,就將返回的查詢結果輸出了。

  上面所講的只是一點ASP資料存取的基本知識,但我們已可略窺ASP強大的功能。

  2.現在我們可以通過ASP來存取資料庫,實現動態效果。但還有一個問題:現在提供ASP支援的個人免費網頁,大多數並不提供資料庫的支援。也就是說,你無法在它的資料庫系統中建立並擁有自己的資料庫。若用本機資料庫,你也無法設定管理員主機中的ODBC,無法得到你本機資料庫的DSN,也就不能通過ASP來存取資料庫了。怎麼解決這個問題呢?下面的討論將給出一個簡單的方法,那就是FILE DSN。

  首先解釋幾個名詞

  DSN:根據MICROSOFT的官方文檔,DSN的意思是“應用程式用以請求一個連到ODBC資料來源的串連(CONNECTION)的名字”,換句話說,它是一個代表ODBC串連的符號。它隱藏了諸如資料庫檔案名、所在目錄、資料庫驅動程式、使用者ID、密碼等細節。因此,當建立一個串連時,你不用去考慮資料庫檔案名、它在哪兒等等,只要給出它在ODBC中的DSN即可。

  FILE DSN: 當我們討論這個問題時,先看看其他的DSN類型

  SYSTEM DSN:這種DSN可以被任何登入到系統中的使用者使用。

  USER DSN:這是為特定使用者建立的DSN。只有建立這個DSN的使用者才能看到並使用它。在上面的兩種情況中,DSN的細節都儲存在系統的註冊表中。

  知道了上面的預備知識後,讓我們來看看什麼是FILE DSN。FILE DSN 將DSN的細節內容存貯在一個檔案中,而不是存貯在系統註冊表中。這個檔案是簡單的文字檔,用.dsn作為副檔名。

  雖然這聽起來挺簡單,但你需要知道那些組成DSN檔案的參數。下面給出一個簡單的用來存取ACCESS的DSN檔案,

   ---- file.dsn ----

  [ODBC]

  DRIVER=Microsoft ACCESS Driver (*.mdb)

  ReadOnly=0

  UserCommitSync=Yes

  Threads=3

  SafeTransactions=0

  PageTimeout=5

  MaxScanRows=8

  MaxBufferSize=512

  ImplicitCommitSync=Yes

  FIL=MS ACCESS

  DriverId=25


  將它命名為file.dsn,當然,你可根據你的願意改名。

  建立了這個檔案後,工作已完成了一半。下面的工作是建立一個串連。當用一個SYSTEM DSN時,建立串連只要簡單地引用SYSTEM DSN:

  conn.open “mydsn”(conn是連線物件的名字)

  當應用如上的FILS DSN 時,你需要加入更多的參數來說明。

  Conn.open “filedsn=c:\webdir\file.dsn;DBQ=c:\DATABASE\mydb.mdb;UID=admin;PWD=admin;”

  C:\webdir是.dsn檔案所在的目錄,它需要用檔案的實體路徑。你可以用SERVER.MAPPATH方法來得到。
如Server.MapPath(“/mysite/file.dsn”)。同樣,對於DBQ參數也需如此。UID和PWD參數是可選的。

  簡而概之,要建立一個可重用的FILE DSN

  1)用DSN參數建立一個以dsn為副檔名的文字檔。

  2)用FILEDSN和DBQ參數建立串連,你可以用SERVER.MPAPATH來得到實體路徑。

  3)只需更改DBQ、UID和PWD參數,就可將這個FILE DSN用到任何ACCESS資料庫上。

  需要注意的是,對其他非ACCESS類型的資料庫需要應用不同的參數值和一些附加的參數。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。