📄 mdlconnection.bas
字号:
Attribute VB_Name = "MdlConnection"
Option Explicit
Public con As ADODB.Connection
Public rs As ADODB.Recordset, rsTemp As ADODB.Recordset
Public cmd As ADODB.Command
'记录集状态标记 分配了内存空间 = True
Public rsFlag As Boolean
'对记录所作操作的标记, add(添加) = 1,del(删除) = 2,modify(修改) = 3,没有操作 = 0
Public cmdFlag As Integer
'strConnect 数据库建立连接时的字串
Public strConnect As String
'strRecordset 记录集建立时的字串
Public strFind As String
'strdbUsername 连接数据库时所需的用户名
Public strdbUserName As String
'strdbPassword 连接数据库时所需的密码
Public strdbPassword As String
'strdbName 连接数据库时所需的数据库名称
Public strdbName As String
'strdbHostname 连接数据库时所需的数据库所在主机名称
Public strHostName As String
'API 函数 GetPrivateProfileString 读取 *.ini 中的字符串
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Sub GetInfo()
'临时变量,存放从ini文件中读取的字串
Dim strTemp As String
'给变量开16个字符的空间
strTemp = Space(16)
'API 函数 GetPrivateProfileString 读取 *.ini 中的字符串
GetPrivateProfileString "info", "username", "sa", strTemp, 16, App.Path & "\info.ini"
strdbUserName = Trim(strTemp)
'Debug.Print "strdbUsername ", strdbUserName
strTemp = Space(16)
GetPrivateProfileString "info", "password", "", strTemp, 16, App.Path & "\info.ini"
strdbPassword = Trim(strTemp)
'Debug.Print "dbPassword", strdbPassword
strTemp = Space(100)
GetPrivateProfileString "info", "databasename", "redSun", strTemp, 16, App.Path & "\info.ini"
strdbName = Trim(strTemp)
'Debug.Print "strdbName", strdbName
strTemp = Space(100)
GetPrivateProfileString "info", "hostname", ".", strTemp, 16, App.Path & "\info.ini"
strHostName = Trim(strTemp)
'Debug.Print "strHostname", strHostName
End Sub
Public Sub ConOpen(ByRef conTemp As ADODB.Connection, ByVal conStr As String, ByVal conUsername As String, ByVal conPassword As String)
Dim mysql As String
'打开数据库连接,分配内存空间,传递三个参数(连接字串,数据库登录名,密码)
Set conTemp = New ADODB.Connection
mysql = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=redSun;Data Source=."
'conTemp.Open conStr, conUsername, conPassword
conTemp.Open mysql
End Sub
Public Sub RsOpen(ByRef rsOpenTemp As ADODB.Recordset, ByRef conTemp As ADODB.Connection, ByVal rsStr As String, ByVal rsCmdType As String)
'Debug.Print "rsstr", rsStr
'打开记录集,分配内存空间,传递五个参数(连接字串,数据库连接,游标类型,锁类型,打开类型)
'根据adCmdText和adCmdTable 类型判断
If rsCmdType = "adcmdtext" Or rsCmdType = "adCmdText" Then
Set rsOpenTemp = New ADODB.Recordset
rsOpenTemp.Open rsStr, conTemp, adOpenDynamic, adLockOptimistic, adCmdText
'记录集打开标记设为True
rsFlag = True
ElseIf rsCmdType = "adcmdtable" Or rsCmdType = "adCmdTable" Then
Set rsOpenTemp = New ADODB.Recordset
rsOpenTemp.Open rsStr, conTemp, adOpenDynamic, adLockOptimistic, adCmdTable
'记录集打开标记设为True
rsFlag = True
End If
End Sub
Public Sub RsClose(ByRef rsCloseTemp As ADODB.Recordset)
'如果记录集分配了内存空间,则关闭记录集, 关闭数据库连接
If rsFlag = True Then
'如果记录集状态为打开,则关闭记录集,清空内存,记录集状态标记设为False
If rsCloseTemp.State = adStateOpen Then
rsCloseTemp.Close
Set rsCloseTemp = Nothing
'记录集状态标记设为False
rsFlag = False
End If
End If
End Sub
Public Sub ConClose()
'关闭数据库连接,清空内存
con.Close
Set con = Nothing
'参见MSDN中的相关Nothing内容
End Sub
Public Sub CmdOpen(ByRef cmdTemp As ADODB.Command)
'给ADODB.Command对象分配内存空间,设置其所用数据库连接的名称
Set cmdTemp = New ADODB.Command
Set cmdTemp.ActiveConnection = con
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -