数据连接模块
Option Explicit
'用户登录身份
Public gstrShenFen As String
Public gstrYongHuMing As String
'*****************************************************
'目的:执行操作数据库的功能
'输入:
'SQL:为要执行的SQL语句。
'MsgString:为提示信息。
'返回:如果执行SQL语句为select语句,可有记录集被返回;
'否则为空记录集。
'*****************************************************
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) _
As ADODB.Recordset
'定义变量
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
'分别存储SQL语句中的各个单词,用于判断SQL语句的类型
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
'取出SQL语句中的各个单词
sTokens = Split(SQL)
'用cnn连接数据库
Set cnn = New ADODB.Connection
cnn.Open "dsn=xxgis;uid=xxgis;pwd=xxgis" '数据库连接需要更改,可采用ole方式
'如果是INSERT,DELETE,UPDATE中的SQL语句
If InStr("INSERT,DELETE,UPDATE,ALTER,CREATE", UCase$(sTokens(0))) Then
'执行SQL语句,不返回记录集
cnn.Execute SQL
MsgString = sTokens(0) & " query successful!"
Else
'否则,建立记录集
Set rst = New ADODB.Recordset
'得到查询结果(在多用户环境下可看到其他用户
'对数据的修改<开销较大>,且只有在Update时才锁定记录集)
rst.Open Trim$(SQL), cnn, adOpenDynamic, adLockOptimistic
'并返回
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & "条记录!"
End If
ExecuteSQL_Exit:
'撤销对象并退出
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
'执行SQL语句出现错误
MsgString = "查询错误:" & ERR.Description
Resume ExecuteSQL_Exit
End Function
浙公网安备 33010602011771号