技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 71645
|
使用ADP進(jìn)行mdb數(shù)據(jù)庫開發(fā)的實(shí)現(xiàn)方案
優(yōu)點(diǎn):
1. 不依賴鏈接表
2. 純粹使用ADO
3. 可輕松將mdb數(shù)據(jù)庫應(yīng)用升遷到SQLServer數(shù)據(jù)庫應(yīng)用
4. 可使用記錄集作為報表的數(shù)據(jù)來源
5. 應(yīng)用程序中無數(shù)據(jù),數(shù)據(jù)安全容易得到保障
缺點(diǎn):
1. 編程量相對較大
2. 開發(fā)不直觀
實(shí)現(xiàn)原理:
1. ADO數(shù)據(jù)庫連接的提供者一定是 “Microsoft.Access.OLEDB.10.0”,這樣,記錄集才能綁定到窗體和報表
2. ADO數(shù)據(jù)庫連接的數(shù)據(jù)提供者是 “Microsoft.Jet.OLEDB.4.0” 或者 “Microsoft.ACE.OLEDB.12.0” 或者 “Microsoft.ACE.OLEDB.14.0”,即 mdb 數(shù)據(jù)庫的提供者
3. 新建 ADP 時,取消數(shù)據(jù)庫連接,即保證 ADP 處于斷開狀態(tài), ADP 中無連接字符串。
對ADO進(jìn)行了一次封裝,作為全局的連接對象,放在 modADO 模塊中- Option Compare Database
- Option Explicit
- ' 作者:朱亦文(zhuyiwen)
- ' 時間:2013-07-11
- Public Const DBFileName = "Data.mdb"
- Public Const DBProvider = "Microsoft.Access.OLEDB.10.0"
- Public Const DBDataProvider = "Microsoft.Jet.OLEDB.4.0"
- Public Const DBPersistSecurityInfo = "False"
- Public Const DBCursorLocation = adUseServer
- Private m_Conn As ADODB.Connection
- Private m_DBErrorNum As Integer
- Private m_DBErrorMessage As String
- Public Property Get DBErrorNumber() As Integer
- DBErrorNumber = m_DBErrorNum
- End Property
- Public Property Get DBErrorMessage() As String
- DBErrorMessage = m_DBErrorMessage
- End Property
- Public Property Get DBConnectionString() As String
- DBConnectionString = _
- "Provider=" & DBProvider & ";" & _
- "Persist Security Info=" & DBPersistSecurityInfo & ";" & _
- "Data Source=" & CurrentProject.Path & "" & DBFileName & ";" & _
- "Data Provider=" & DBDataProvider
- End Property
- Public Property Get DBConnection() As ADODB.Connection
- On Error GoTo err_GetDBConnection
- If m_Conn Is Nothing Then
- Set m_Conn = New ADODB.Connection
- m_Conn.CursorLocation = DBCursorLocation
- End If
-
- If m_Conn.State <> adStateOpen Then
- m_Conn.Open DBConnectionString
- End If
-
- Set DBConnection = m_Conn
- Exit Property
-
- err_GetDBConnection:
- m_DBErrorNum = Err.Number
- m_DBErrorMessage = Err.Description
- Err.Clear
- End Property
- Public Function DBClearError() As Boolean
- m_DBErrorNum = 0
- m_DBErrorMessage = ""
- DBClearError = True
- End Function
- Public Function DBCloseConnection() As Boolean
- On Error GoTo err_DBCloseConnection
- If m_Conn Is Nothing Then
- DBCloseConnection = True
- End If
-
- If m_Conn.State <> adStateClosed Then
- m_Conn.Close
- End If
-
- Set m_Conn = Nothing
- DBCloseConnection = True
-
- Exit Function
-
- err_DBCloseConnection:
- m_DBErrorNum = Err.Number
- m_DBErrorMessage = Err.Description
- Err.Clear
- End Function
復(fù)制代碼 這樣的好處,DBConnection 就相當(dāng)于CurrentProject.Connection,便于程序移植。
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?注冊
x
|