一个连接数据库的Class类

发表于:2007-06-30来源:作者:点击数: 标签:
Option Explicit @#local variable(s) to hold property value(s) Private lsServer As String @#local copy Private lsDatabase As String @#local variable(s) to hold property value(s) Private lsUserName As String @#local copy Private lsPassword As
Option Explicit

@#local variable(s) to hold property value(s)
Private lsServer As String @#local copy
Private lsDatabase As String
@#local variable(s) to hold property value(s)
Private lsUserName As String @#local copy
Private lsPassword As String @#local copy
Private lsSelectSQL As String @#local copy
@#local variable(s) to hold property value(s)
Private lsTable As String @#local copy

Public Property Let Table(ByVal vData As String)
@#used when assigning a value to the property, on the left side of an assignment.
@#Syntax: X.Table = 5
lsTable = vData
End Property


Public Property Get Table() As String
@#used when retrieving value of a property, on the right side of an assignment.
@#Syntax: Debug.Print X.Table
Table = lsTable
End Property

Public Property Let SelectSQL(ByVal vData As String)
@#used when assigning a value to the property, on the left side of an assignment.
@#Syntax: X.SelectSQL = 5
lsSelectSQL = vData
End Property


Public Property Get SelectSQL() As String
@#used when retrieving value of a property, on the right side of an assignment.
@#Syntax: Debug.Print X.SelectSQL
SelectSQL = lsSelectSQL
End Property



Public Property Let Password(ByVal vData As String)
@#used when assigning a value to the property, on the left side of an assignment.
@#Syntax: X.Password = 5
lsPassword = vData
End Property


Public Property Get Password() As String
@#used when retrieving value of a property, on the right side of an assignment.
@#Syntax: Debug.Print X.Password
Password = lsPassword
End Property



Public Property Let UserName(ByVal vData As String)
@#used when assigning a value to the property, on the left side of an assignment.
@#Syntax: X.UserName = 5
lsUserName = vData
End Property


Public Property Get UserName() As String
@#used when retrieving value of a property, on the right side of an assignment.
@#Syntax: Debug.Print X.UserName
UserName = lsUserName
End Property



Public Property Let Server(ByVal vData As String)
@#used when assigning a value to the property, on the left side of an assignment.
@#Syntax: X.Server = 5
lsServer = vData
End Property


Public Property Get Server() As String
@#used when retrieving value of a property, on the right side of an assignment.
@#Syntax: Debug.Print X.Server
Server = lsServer
End Property

Public Property Let Database(ByVal vData As String)
@#used when assigning a value to the property, on the left side of an assignment.
@#Syntax: X.Database = 5
lsDatabase = vData
End Property


Public Property Get Database() As String
@#used when retrieving value of a property, on the right side of an assignment.
@#Syntax: Debug.Print X.Database
Database = lsDatabase
End Property


Public Function ConnectDatabaseByODBCDNS(lsDNS As String) As ADODB.Connection
On Error GoTo Errhandle
Dim Conn As New ADODB.Connection
Dim strConn As String
strConn = "DSN=" & lsDNS & _
";UID=" & lsUserName & _
";Pwd=" & lsPassword
If Conn.State = adStateOpen Then
Conn.Close
End If
Conn.Open strConn
Conn.CursorLocation = adUseClient
Set ConnectDatabaseByODBCDNS = Conn
Exit Function
Errhandle:
Err.Raise 102, "DBConn.Cls", "Can@#t Connect To The " & Database & " Database!"
End Function
Public Function ConnectDatabaseByODBC() As ADODB.Connection
On Error GoTo Errhandle
Dim Conn As New ADODB.Connection
Dim strConn As String
strConn = "Provider=MSDASQL.1" & _
";User ID=" & lsUserName & _
";Password=" & lsPassword & _
";Persist Security Info=False" & _
";Initial Catalog=" & lsDatabase & _
";Data Source=" & lsServer
If Conn.State = adStateOpen Then
Conn.Close
End If
Conn.Open strConn
Conn.CursorLocation = adUseClient
Set ConnectDatabaseByODBC = Conn
Exit Function
Errhandle:
Err.Raise 108, "DBConn.Cls", "Can@#t Connect To The " & Database & " Database!"
End Function
Public Function ConnectDatabaseByODBCProvider() As ADODB.Connection
On Error GoTo Errhandle
Dim Conn As New ADODB.Connection
Dim strConn As String
strConn = "Driver={SQL Server};Server=" & lsServer & _
";Database=" & lsDatabase & _
";UID=" & lsUserName & _
";Pwd=" & lsPassword
If Conn.State = adStateOpen Then
Conn.Close
End If
Conn.Open strConn
Conn.CursorLocation = adUseClient
Set ConnectDatabaseByODBCProvider = Conn
Exit Function
Errhandle:
Err.Raise 101, "DBConn.Cls", "Can@#t Connect To The " & Database & " Database!"
End Function
Public Function ConnectDatabaseByOLEDB(lsServer As String, lsUserName As String, lsPassword As String, lsDatabase As String) As ADODB.Connection
On Error GoTo Errhandle
Dim Conn As New ADODB.Connection
Dim strConn As String
strConn = "Provider=SQLOLEDB.1" & _
";User ID=" & lsUserName & _
";Password=" & lsPassword & _
";Persist Security Info=False" & _
";Initial Catalog=" & lsDatabase & _
";Data Source=" & lsServer
If Conn.State = adStateOpen Then
Conn.Close
End If
Conn.Open strConn
Conn.CursorLocation = adUseClient
Set ConnectDatabaseByOLEDB = Conn
Exit Function
Errhandle:
Err.Raise 100, "DBConn.Cls", "Can@#t Connect To The " & Database & " Database!"
End Function
Public Function ConnectDatabaseByODBCDNSForCrystal(lsDNS As String) As ADODB.Connection
On Error GoTo Errhandle
Dim Conn As New ADODB.Connection
Dim strConn As String
strConn = "DSN=" & lsDNS & _
";UID=" & lsUserName & _
";PWD=" & lsPassword & _
";DSQ=" & lsDatabase
If Conn.State = adStateOpen Then
Conn.Close
End If
Conn.Open strConn
Conn.CursorLocation = adUseClient
Set ConnectDatabaseByODBCDNSForCrystal = Conn
Exit Function
Errhandle:
Err.Raise 104, "DBConn.Cls", "Can@#t Connect To The " & Database & " Database For Crystal!"
End Function
Public Function ConnectDatabaseByOLEDBForCrystal() As ADODB.Connection
On Error GoTo Errhandle
Dim Conn As New ADODB.Connection
Dim strConn As String
strConn = "Driver={SQL Server}" & _
";UID=" & lsUserName & _
";PWD=" & lsPassword & _
";Server=" & lsServer & _
";Database=" & lsDatabase
If Conn.State = adStateOpen Then
Conn.Close
End If
Conn.Open strConn
Conn.CursorLocation = adUseClient
Set ConnectDatabaseByOLEDBForCrystal = Conn
Exit Function
Errhandle:
Err.Raise 105, "DBConn.Cls", "Can@#t Connect To The " & Database & " Database For Crystal!"
End Function
Public Function OpenRecordset(lsServer As String, lsUserName As String, lsPassword As String, lsDatabase As String, lsTable As String, Optional lsSelectSQL As String) As ADODB.Recordset
On Error GoTo Errhandle
Dim rs As New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
If rs.State = adStateOpen Then
rs.Close
End If
If Trim(lsSelectSQL) = "" Then
Set rs = ConnectDatabaseByOLEDB(lsServer, lsUserName, lsPassword, lsDatabase).Execute("Select * From " & lsTable)
Else
Set rs = ConnectDatabaseByOLEDB(lsServer, lsUserName, lsPassword, lsDatabase).Execute(lsSelectSQL)
End If
Set OpenRecordset = rs
Exit Function
Errhandle:
Err.Raise 110, "ConnDB.Cls", "Can@#t Open The RecordSet"
End Function
Public Sub UpdateRecordset(lsTable As String, lsUpdateCondition As String)
On Error GoTo Errhandle
ConnectDatabaseByODBCProvider.BeginTrans
ConnectDatabaseByODBCProvider.Execute ("Update " & lsTable & " where " & lsUpdateCondition)
ConnectDatabaseByODBCProvider.CommitTrans
Errhandle:
ConnectDatabaseByODBCProvider.RollbackTrans
Err.Raise 111, "ConnDB.Cls", "Can@#t Update the Recordset!"
End Sub
Private Sub Class_Initialize()
@# lsServer = "prc_msdnt"
@# @#lsDatabase = "NorthWind"
@# lsUserName = "sa"
@# lsPassword = "sa"
@# lsSelectSQL = ""
@# lsTable = ""
End Sub

原文转自:http://www.ltesting.net