WebComputing━ADO總結報告

來源:互聯網
上載者:User
ado|web 在當今提出的多種動態網頁(Dhtml)解決方案中都強調了與資料庫的串連,其實網頁接掛後台資料庫也是當前的熱門 App,在電子商務等領域有著廣泛的應用.MicroSoft為了適應其發展推出了新的ADO(Active Data Object)模型,通過ODBC的串連可以對當前流行的案頭資料庫系統提供方便,快潔的串連.在這裡,我想通過ADO在ASP技術中的應用來總結一下ADO對象以及其各自的屬性和方法.
一、ADO物件模型:
下面簡單介紹一下ADO的物件模型
ADO有三大對象,即Connection對象,Command對象,RecordSet對象.
Connection(對象)
─Errors(集合)─Error(對象)
Command(對象)
─Parameters(集合)─Parameter(對象)
RecordSet(對象)
─Fields(集合)─Field(對象)
  其中Connection對象,Command對象,RecordSet對象和Field對象又分別具有Properities集合而產生Properity對象.我們在asp編程中已經對這幾個對象有了足夠的瞭解.下面是以上三大對象的相互關係.
Command.ActiveConnection-$#@62;Connection
RecordSet.ActiveConnection-$#@62;Connection
Connection.Execute-$#@62;RecordSet
Command.Execute-$#@62;RecordSet
RecordSet.Source-$#@62;Command
好了,有了以上的關係表後,你應該能理解有一些等價的表達形式了.
形式1
set rs = Server.CreateObject("ADODB.RecordSet")
strConn = "driver={SQL Server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
strSQL = "Select * From Employee ;"
rs.open strSQL,strConn,,,adCmdText
形式2
set conn = Server.CreateObject("ADODB.Connection")
strConn ="driver={SQL Server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
conn.open strConn
set rs = Server.CreateObject("ADODB.RecordSet")
rs.ActiveConnection=conn(注意此句)
strSQL = "Select * From Employee ;"
rs.open strSQL,,,,adCmdText
"上面這句也可以寫成rs.open strSQL,conn,,,adCmdText
形式3
set conn = Server.CrreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.RecordSet")
strConn ="driver={SQL Server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
conn.open strConn
strSQL = "Select * From Employee ;"
rs=conn.Execu strSQL(注意次句)
形式4
set rs = Server.CreateObject("ADODB.RecordSet")
strConn ="driver={SQL Server};server=srv;"& _
"uid=sa;pwd=;database=pubs"
strSQL = "Select * From Employee ;"
rs.open strSQL,strConn,,,adCmdText
註:上面的例子中均假設SQL Server的name=srv,使用SQL Server Authentication採用了預設的帳號sa,該帳號沒有設定密碼。
  上面這幾種形式都能夠產生一個相同的RecordSet對象的執行個體rs,但方法各異,在後面的討論中我們將看到它們不同的優越性.
二、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對象的主要方法和屬性。
$#@60;%
"this program is testing the ADO"s Property object
Const adCmdTable = &H0002
set conn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.RecordSet")



相關文章

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。