如何在ado中使用connection 對象什麼是connection對象?

來源:互聯網
上載者:User
ado|connection|對象 什麼是connection對象?

一個connection對象描述了到資料來源的物理串連。你可以使用odbc也可以利用ole db來串連資料來源。當你開啟一個connectiont對象時你就會試圖串連資料庫。Connection對象的state屬性會告訴我們串連是否成功。通過connection對象的execute方法向資料來源發送SQL語句或運行存預存程序。如果你向資料來源發送的命令要求資料來源返回記錄集,那麼記錄集對象會自動的被建立。當你串連上資料庫後你可以關閉connection對象。

Connection 對象的方法和屬性有哪些呢?

下表列出了connection一些常用的方法。

方法
描述

Open
開啟一個資料來源串連

Close
關閉與資料來源的串連以及相關的對象

Execute
執行一個相關的查詢(SQL語名或預存程序,或資料提供者特定文本)

BeginTrans
開始一個新事務

CommitTrans
.

儲存一些改變或當前的事務目的是為開始一個新事務

RollbackTrans
取消一些改變在當前事務和結束事務時,目的是開始一個新事務



下表列出了一些常用的CONNECTION對象的屬性。

屬性
描述

ConnectionString
包含建立與資料來源的串連的相關資訊

ConnectionTimeout
顯示嘗試建立與資料來源的串連和產生錯誤所花去的時間

CommandTimeout
顯示在中斷一個嘗試和返回一個錯誤前執行該項指令所花去的時間

State
表明是否與資料來源串連上或已關閉或正在串連中

Provider
顯示串連提供者的名稱

Version
顯示ado版本號碼

CursorLocation
設定或返回一個提供者游標函數的定值





如何利用connection對象串連資料來源?

用一個connnection 對象,只要指定一個connection字串,目的是用來指定你想要連接的資料來源,然後調用open方法來建立連結。

通過connection string提供的資訊用OPEN方法可以非常輕鬆的建立與資料的串連。如果你決定用connection對象進行工作,那麼你可以用它的STATE屬性。如果connection對象被開啟了那麼它的傳回值為adstateopen,如果不是它的傳回值為adstateclosed.下面的例子是利用odbc建立與SQL的串連。

Sub ConnectionExample1()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 用ODBC開啟串連.
cnn.Open "Pubs", "sa", ""
' 檢查是否完成串連
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
關閉connection對象
cnn.Close
End Sub
如果你只需要串連一個資料來源。下面的代碼要比上面的簡單。作為選擇,你可以建立一個connection對象,在調用open方法前你可以先設定ConnectionString屬性。這種方法容許你串連一個資料來源後再重新用這個對象再串連另一個資料來源。
Sub ConnectionExample2()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 用ODBC DSN 建立串連
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.Open
' 檢查是否與資料來源建立了串連.
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
'關閉connection對象
cnn.Close
End Sub
在你對CONNECTION對象建立串連前,你可以設定它的其它屬性。例如,你可以設定連線逾時。

Sub ConnectionExample3()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 設定CONNECTION屬性
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.ConnectionTimeout = 30
' 開啟connection 對象
cnn.Open
' 檢查是否已經串連上資料來源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
' 關閉connection對象
cnn.Close
End Sub
ConnectionString屬性的文法結構假定資料來源已經被建立或利用系統管理員的身份使用ODBC.不依靠存在的odbc資料來源變得流行起來。這樣就減輕了安裝的負擔。下面的例子是一個串連SQL SERVER的可選擇性的方法,僅依靠本身存在的odbc driver

. Sub ConnectionExample4()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'利用引用ODBC DRIVER開啟CONNECTION對象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' Find out if the attempt to connect worked.
'檢查是否已經建立串連
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
' 關閉CONNECTION對象
cnn.Close
End Sub
現在ODBC DRIVER 有更廣的變化,你可以用ADO和資料來源對話。不久將會有更的的OLE DB提供者與資料來源建立串連。The Microsoft® OLE DB Provider for ODBC是當前ADO預設的提供者。你能用不同的提供者設定CONNECTION對象的provider屬性。

Sub ConnectionExample5()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'設定PROVIDER屬性利用OLE DB Provider for ODBC
cnn.Provider = "MSDASQL"
'用ODBC DSN開啟CONNECTION對象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open

'檢查是否串連上資料來源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If

'關閉CONNECTION對象
cnn.Close

End Sub
上面的代碼設定PROVIDER屬性不是必須因為ADO的預設提供者就是OLE DB PROVIDER FOR ODBC.這裡只是認你知道當你用其它的OLE DB PROVIDERS時如何設定。

我如何用CONNECTION對象執行COMMAND?

CONNNETION的EXECUTE方法用來發送一個COMMAND(一個SQL指令或其它的文本資訊)到資料來源。如果在SQL指令中要求返回幾行記錄集,一個RECORDSET對象將會被自動的建立。

Sub ConnectionExample6()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
' 引用 ODBC driver 建立串連.
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' 執行SQL 陳述式創立一個RECORDSET對象.
Set rs = cnn.Execute("Select * From authors")
' 顯示第一個 author.
MsgBox rs("au_fname") & " " & rs("au_lname")
' 中斷連線
rs.Close
End Sub
記住用EXECUTE返回的RECORDSET是唯讀,並且是僅向前游標。如果你需要用RECORDSET物件的更多函數,你首先要建立RECORDSET物件並設定想要設定的屬性然後用OPEN方法開啟它來執行查詢和返回想要得到的游標類型.

在下面的例子中,COMMAND物件執行刪除指令,由於沒有資料集需要返回,你不需要額外的用RECORDSET物件.刪除了多少行資料?你可以通過RECORDSAFFECTED參數知道它.

Sub ConnectionExample7()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
'引用ODBC DRIVER建立串連
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
'向資料來源發送刪除指令
cnn.Execute ("Delete From authors Where au_i



相關文章

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