active|activex|ado|object|資料 講一講ASP處理資料用的組件ADO (ActiveX Data Object)
一、 字串形式串連一個 Access庫
<%
set conn=server.createobject("ADODB.CONNECTION")
path=server.MapPath("info.mdb")
conn.open "provider=microsoft.jet.oledb.4.0; data source="&path&""
%>
set conn=server.CreateObject ("adodb.connection") 這是建立一個Connection
屬性的對象conn的代碼 很簡單吧!^_^
path=server.MapPath("info.mdb") 用asp帶的server對象的MapPatch方法返回
info.mdb的絕對路徑。
conn.open "provider=microsoft.jet.oledb.4.0; data source="&path
用conn.對象的open方法建立一個對Access資料庫的串連
provider=microsoft.jet.oledb.4.0 就代表串連的是一個Access串連 而後邊的
data source="&path 指定了要串連的資料庫的絕對路徑。:·)
二、字串形式串連一個Sql Server庫
<%
set conn=server.CreateObject ("adodb.connection")
conn.Open "driver={SQL
Server};server=localhost;UID=username;PWD=password;database=dataname"
%>
看上邊這段代碼。
set conn=server.CreateObject ("adodb.connection") 上邊講過了 是建立一個
connections的對象:-)
現在我們用這個對象開啟一個資料庫連接
conn.Open "driver={SQL
Server};server=localhost;UID=username;PWD=password;database=dataname"
conn的open方法是開啟一個串連用的 後邊根一個字串 driver={SQL Server}的
意思是串連的是一個sql server的庫,server=localhost 中的localhost代表的是
原生IP 當然 你的資料庫伺服器IP是多少這裡就改成相應的
值;UID=username;PWD=password;這兩個是你登陸你的資料庫伺服器的使用者名稱跟密
碼。下邊一個database=dataname 就是你要*作的資料庫的名字了 :-} 至此 你已
經成功的建立一個SQL Server的串連了。
串連建立了,但是要使用recordset屬性的對象做資料處理我們還需要一點知識,
那就是T-SQL語言 我們必須用T-SQL選擇一個記錄集傳送給recordset屬性 下邊我
給大家講一條簡單的sql語句 方便大家實踐中使用。看下邊這個例子: Select *
from tablename where uid=’Coolshow’
Select 後邊緊跟著一個*,*是萬用字元 代表選擇表中的所有欄位 也可以指定一個
或一個以上的欄位 比如這樣寫 Select uid只開啟一個uid欄位,或者Select
uid,pwd,sex,tel,address同時開啟uid,pwd,sex,tel,address五個欄位。 後邊
from tablename 是開啟那個表,這裡有幾種用法,由於相對複雜一點,而且我們
的重點不是在這裡 所以在這裡就不多說了,如果有什麼疑問大家可以給編輯寫信
讓他要求我在寫一篇關於T-SQL的 :-) 再往後看,where uid=’Coolshow’ 這句
話的意思是選取所有符合 uid欄位的值等於字串Coolshow的記錄集,也可以用
and 來串連多個條件,這裡也不詳細講述了 :)
好了,兩個主流資料庫我們都串連上了,T-SQL語言你也能簡單的使用了,下邊該
講一下如何利用recordset屬性讀取資料了。
首先讓我們來建立一個recordset屬性的對象
set rs=server.CreateObject ("ADODB.Recordset")
很簡單的一段代碼 利用了asp內建的server對象的CreateObject方法建立了一個
Recordset屬性的對象,大家會發現這段代碼跟前邊建立串連的那個對象的代碼差
不多 沒錯,asp建立對象都是這個樣子的 :)現在讓我們用Recordset的對象rs來
開啟一個記錄集。
Rs.open “Select * from tablename where uid=’Coolshow’”,conn,1,1 看看
這句是不是很容易懂 用我們剛剛建立的Recordset屬性的對象RS的open方法開啟一
個記錄集,後邊跟了三個參數用逗號分開,第一個參數不用講了,就是選取資料用
的T-sql語句第二個那:_) 就是我們已經建立好串連的connection屬性的對象conn
後邊兩個參數說法比較多,我在這裡簡單的給大家講一下,如果唯讀取資料 設
置”1,1”就足夠了,如果要添加資料,設定”1,2”如果要改寫資料最好設定”
2,3”。這兩個參數一定要切記不然在將來的編程中會給你帶來不少的麻煩,看著
sql語句沒錯,對象用法也沒錯,資料庫表結構也沒錯,為什麼就oledb錯誤哪?問
題往往就出在這,檢查一下你這兩個參數 是夠給足了rs對象許可權讓他做你要他做
的事情。好了,兩對象(object)我們都搞完了 ^^ 現在讓我們進入處理資料的具
體實踐中。
一、 顯示資料
別用如饑似渴的眼神看著我,猴急什麼~:) 嘿~ 調節一下氣氛.下面我寫一段代碼
你看看能不能讀懂,要是讀得懂就說明整個ado的使用你已經學會了一半了 :)
<%
set conn=server.CreateObject ("adodb.connection")
conn.Open "driver={SQL
Server};server=localhost;UID=username;PWD=password;database=dataname"
set rs=server.CreateObject ("ADODB.Recordset")
rs.open “Select * from tablename where uid=’Coolshow’”,conn,1,1
%>
好,如果你看懂了,我們就接著來看下一步,ado的資料顯示
<%
set conn=server.CreateObject ("adodb.connection")
conn.Open "driver={SQL
Server};server=localhost;UID=username;PWD=password;database=dataname"
set rs=server.CreateObject ("ADODB.Recordset")
rs.open “Select * from tablename where uid=’Coolshow’”,conn,1,1
if rs.eof and rs.bof then ’如果資料指標同時指到記錄集的頭部根尾部
說明記錄集為空白這時候
response.write “沒有可以顯示的資料” ’列印“沒有可以顯示的資料”
do until rs.EOF ‘迴圈 直到記錄集尾部為止
response.write rs(“欄位1名”) ’顯示一個行的一個欄位
response.write rs(“欄位2名”) ’同上
resp