Public Function SQLExistDatabase(Cn As ADODB.Connection, sDBName As String) As Boolean
Dim sSQL As String
Dim RS As New ADODB.Recordset
Dim bTmp As Boolean
on Error GoTo errSQLExistDatabase
sSQL = "select CntDB = count ( * ) "
sSQL = sSQL & "From master.dbo.sysdatabases"
sSQL = sSQL & "Where name = 注釋: "& sDBName & " 注釋: "
RS.Open sSQL, Cn
If RS! CntDB = 0 Then bTmp = False Else bTmp = True
RS.Close
SQLExistDatabase = bTmp
Exit Function
errSQLExistDatabase:
SQLExistDatabase = False
Exit Function
End Function
(5)刪除一個數(shù)據(jù)庫
Public Function SQLDropDatabase (Cn As ADODB.Connection, sDBName As String) As Boolean
Dim sSQL As String
On Error GoTo errSQLDropDatabase
If Not SQLExistDatabase(Cn, sDBName) Then
SQLDropDatabase = True
Exit Function
End If
Dim sDB As String
sDB = SQLGetCurrentDatabaseName(Cn)
sSQL = "Use master"
Cn.Execute sSQL
sSQL = "DROP DATABASE " & sDBName
Cn.Execute sSQL
sSQL = "USE " & sDB
Cn.Execute sSQL
SQLDropDatabase = True
Exit Function
errSQLDropDatabase:
On Error Resume Next
sSQL = "USE " & sDB
Cn.Execute sSQL
SQLDropDatabase = False
End Function
三、性能比較及應(yīng)用說明
用VB開發(fā)基于SQL Server的數(shù)據(jù)庫系統(tǒng),以上幾種訪問SQL Server的方法各有各的特點(diǎn)。DAOs方法是基于對象的,因而便于使用,但是它是從Visual Basic到SQL Server最慢的連接方式。ODBC API和VBSQL方法從本質(zhì)上講是基于程序的。ODBC API方法通用性好,允許最強(qiáng)的互操作性,編程簡單,但速度慢于VBSQL方法。VBSQL方法通過VBSQL控件,提供了重要的SQL Server前端應(yīng)用程序所需的靈活性、強(qiáng)大功能和良好性能。它具有真正的事件驅(qū)動及錯誤處理能力,完全支持異步處理、游標(biāo)和計算列等。這些都是VBSQL方法超出其它方法的優(yōu)勢,但其編程稍復(fù)雜。RDO是位于ODBC API之上的一個對象模型層,它依賴ODBC API、ODBC驅(qū)動程序以及后端數(shù)據(jù)庫引擎來實現(xiàn),用RDO所需的程序短小(約250 KB)、快速。RDO具備基本的ODBC處理方法,可直接執(zhí)行大多數(shù)ODBC API函數(shù),RDO包含在VB 4.0/VB 5.0企業(yè)版中,由MSRDO32.DLL動態(tài)連接庫來實現(xiàn)。RDO是綜合了DAO/Jet、VBSQL/DBLib和ODBC的優(yōu)點(diǎn)的對象模型,包含ODBC API應(yīng)用層,設(shè)計為在后臺(服務(wù)器端)有數(shù)據(jù)庫存在的前提下運(yùn)行,是針對SQL Server和Oracle而特別設(shè)計的。RDO的優(yōu)勢在于它完全被集成在VB之中,可直接訪問SQL Server存儲過程、完全支持T-SQL、T-SQL調(diào)試集成在開發(fā)環(huán)境中、Visual Database Tools的集成化等。但微軟已宣布今后不再對VBSQL/DBLib進(jìn)行升級,而ODBC API函數(shù)一般的編程方式也不為人們所喜愛,RDO的應(yīng)用將逐漸減少。至于實際使用哪一種接口方式,在很大程度上依賴于用戶的應(yīng)用程序的具體情況而定?! ?
四、VisualBasic訪問數(shù)據(jù)庫的前景
近來隨著Web應(yīng)用軟件的迅速發(fā)展和現(xiàn)有數(shù)據(jù)存儲形式的多種多樣,Visual Basic訪問數(shù)據(jù)庫的解決方案面臨諸如快速提取分布于企業(yè)內(nèi)部和外部有用商業(yè)信息等的多種挑戰(zhàn)。為此Microsoft提出一種新的數(shù)據(jù)庫訪問策略,即“統(tǒng)一數(shù)據(jù)訪問”(UniversalDataAccess)的策略?!敖y(tǒng)一數(shù)據(jù)訪問”提供了高性能的存取包括關(guān)系型和非關(guān)系型在內(nèi)的多種數(shù)據(jù)源,提供獨(dú)立于開發(fā)工具和開發(fā)語言的簡單的編程接口,這些技術(shù)使得企業(yè)集成多種數(shù)據(jù)源、選擇更好的開發(fā)工具、應(yīng)用軟件、操作平臺、建立容易維護(hù)的解決方案成為可能。
“統(tǒng)一數(shù)據(jù)訪問”的基礎(chǔ)是Microsoft的數(shù)據(jù)訪問組件。這些組件包括ActiveXDataObjects(ADO)、RemoteDataService(RDS,也稱“高級數(shù)據(jù)連接器或”ADC)、OLEDB和ODBC。(完)