vb问题?高手请进!!

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:02:42
下面是一个工程的一个模块monstDb,据我所了解模块应该是给整个工程所能访问的,但为何要将,IsConnect,cnn,rs设置为Private访问权限呢?这不是在工程的其它地方处不能用吗?以下代码是没有错误的,但只是我理解这里的访问权限而已.希望各位朋友指点.

Private IsConnect As Boolean '标记数据库是否连接
Private cnn As ADODB.Connection '连接数据库的Connection对象
Private rs As ADODB.Recordset '保存结果集的Recordset对象

'连接数据库
Public Sub DBConnect()
'如果连接标记为真,表明数据库已连接,则直接返回。
If IsConnect = True Then
Exit Sub
End If

'关键字New用于创建新对象cnn
Set cnn = New ADODB.Connection
'设置连接字符串的ConnectionString属性
cnn.ConnectionString = CONSTR
'打开到数据库的连接
cnn.Open
'判断连接的状态
If cnn.State <> adStateOpen Then
'如果连接不成功,则显示提示信息,退出程序
MsgBox "数据库连接失败", vbOKOnly + vbCritical, "连接失败"
End
End If

'设置连接标记,表示已经连接到数据库
IsConnect = True
End Sub

'断开与数据库的连接
Public Sub DBDisconnect()

也有点封装的含义了,即是不允许其它单元的程序直接访问本模块的变量,而通过几个函数来达到改变状态的目的,这样的话比较安全,因为只有本单元的程序在改变这几个变量的值,这样对于此变量的值比较好控制,如果每个单元都可以改变这些值的话,那一旦出了问题,想知道是在哪儿改过的都不太容易了。

我说说我的想法不一定对,这个模块的主要功能不在于让外界去访问公共的连接对象和公共的结果集对象,而是在于这两个函数SQLExt和SQLQuery的功能,这才是给别人留的接口,这才是这个模块的主要意图,让别人去调用这两个函数.