Report Date: 2002/9chin a i t p oe er . co mNRaoA
Prepared by: 鄭 昀
Article last modified on 2002-9chin a i t p oe er . co mNRaoA
The information in this article applies to:
ü Microsoft SQL Server 2000,7.0
ü Microsoft ADO 2.5
數據庫服務器:Microsoft SQL Server 2000以及7.0;
數據庫服務器補丁:Microsoft SQL Server 2000 ServicePack1;
ADO名稱:Microsoft Data Access - ActiveX Data Objects 2.5 Type Library
ADO版本:2.61.7326.0
執行下面的VB代碼時,我們的開發人員產生了疑問:
cnn.Open "Provider=SQLOLEDB.1;
Persist Security Info=False;User ID=sa;
Initial Catalog=freemail;Data Source=svr;ConnectionTimeout=10", "", "", -1
sql = "select * from users"
Set rs = cnn.Execute(sql)
Set rs2 = cnn.Execute(sql)
Set rs3 = cnn.Execute(sql)
執行這段代碼時,在SQL Server Profiler中看到,每個sql語句執行之前都會有一個Audit Login事件。而Audit Login事件的解釋是:“收集自跟蹤啟動後發生的所有新的連接事件,例如客戶端請求連接到運行 Microsoft® SQL Server™ 實例的服務器”。也就是說,用Connection對象連接SQL Server之後,每次執行sql語句時仍然會重新建立一次連接,即使用的是同一個Connection?!
建立連接的事件探查記錄(按時間順序)為:chin a i t p oe er . co mNRaoA
EventClass
Text Data
TraceStart
Audit Login
(第一次連接)
-- network protocol: LPC
set quoted_identifier on
set implicit_transactions off
set cursor_close_on_commit off