ado|web 二、Connection對象:
在ADO的模型中,Connection對象是最基本的對象,他主要是提供與資料庫的串連。其他的兩個對象都是通過它與資料庫的串連來完成操作的。它的屬性、方法如下所示。
Connection對象的主要屬性
1、 CursorLocation,它的取值有兩個,一個是adUseClient,一個是adUseServer(預設),從其英語本身的含義就可以看出,前者是使用用戶端的遊標,而後者是使用伺服器端的遊標。二著的差別在於adUseClient遊標可以提供供應商所沒有提供的額外的屬性,因而靈活性更大。需要注意的是Connection對象與RecordSet對象均有此屬性,由Connection對象產生的RecordSet對象會自動的繼承這個屬性。另外要讓此屬性對Connection和RecordSet對象的執行個體起作用的話,必須在開啟它們之前先定義。
下面看一個例子
Set conn=Server.CreateObject("ADODB.Connection")
conn.CursorLocation=adUseClient
strConn ="driver={SQL Server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
conn.open strConn
set rs= Server.CreateObject("ADODB.RecordSet")
rs.open "emloyee",conn,,,adCmdTable
採用次種方式則conn與rs的遊標均為adUseClient了。
2、 ConnectionString,在開啟一個Connection執行個體之前設定資料庫的串連資訊。在上面的例子中我們使用了一條語句conn.open strConn,其中的strConn就是ConnectionString,因此我們可以重寫上面的語句如下:
Conn.ConnectionString=strConn
Conn.open
3、 ConnectionTimeOut,設定連線逾時。
4、 CommandTimeOut,設定命令執行逾時。
Connection的主要方法
1、 open,開啟一個Connection的對象執行個體,常用的寫法為conn.open ConnectionString,如果在開啟之前已經定義了ConnectionString屬性的話,就可以直接的開啟。
2、 Execute,產生一個RecordSet執行個體,常用的寫法為
Rs=conn.Excute CommandText,RecordsAffected,Option
其中的CommandText可以為以下的幾種形式,主要由Option的值來決定1) SQL語句,此時Option的值為adCmdText,表示將執行一段SQL語句。2)資料庫的一個表名,此時Option的值為adCmdTable,表示將對該表進行操作。
3、一個StoredProcedure名字,此時Option取值為adCmdStoredProc,它表示將要執行一個SQL上定義的預存程序。這是一個非常靈活而強大的方法,它可以對使用者隱藏資料庫的具體資訊,而只需使用者提供適當的參數就可以了,還能返還需要的參數值。在後面介紹Command對象時再做詳細的介紹。值得注意的是,有時Excute後並不需要返回一個RecordSet對象,例如在表中刪除記錄。看下面的例子:
set conn= Server.CreateObject("ADODB.Connection")
conn.ConnectionString="driver={SQL Server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
conn.open
conn.Execute "Delect From Employee Where Job_ID=1;",,adCmdText
該例子刪除Employee表中Job_ID為1的記錄,並不需要再返回一個RecordSet的執行個體,但如果將最後一句變為rs= conn.Execute "Delect From Employee Where Job_ID=1;",,adCmdText那麼我們就可以用此rs來指向表中的記錄條了。返回的rs和後面RecordSet對象中用Source屬性產生的rs是相同的。
Connection對象的集合
1、 Errors集合,對應產生Error對象。我們將在後面做單獨的討論。
2、 Properties集合,對應產生Property對象,下面給出一段代碼,它包含了Property對象的主要方法和屬性。
<%
"this program is testing the ADO"s Property object
Const adCmdTable = &H0002
set conn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.RecordSet")
conn.ConnectionString="Driver={Microsoft Access Driver (*.mdb)};DBQ="& _
Server.Mappath("/source_asp")&"/property/employee.mdb;"
conn.open
rs.ActiveConnection=conn
rs.open "employee",,,adCmdTable
dim i,j
for i=0 to rs.fields.count-1
Response.Write rs.fields(i).name&"<br>"
next
for j=0 to rs.properties.count-1
Response.write rs.properties(j).name&"<br>"
next
rs.close
conn.close
%>