vb一函数---请高手指导每一句都是什么意思

来源:百度知道 编辑:UC知道 时间:2024/07/06 17:43:40
Public Function ExecuteSQL(ByVal sql As String) As ADODB.Recordset
Dim mycon As ADODB.Connection
Dim rst As ADODB.Recordset
Set mycon = New ADODB.Connection
mycon.ConnectionString = connstring
mycon.Open
Dim stokens() As String
On Error GoTo exectuesql_error
stokens = Split(sql)
If InStr("INSER,DELETE,UPDATE", UCase(stokens(0))) Then
mycon.Execute sql
Else
Set rst = New ADODB.Recordset
rst.Open Trim(sql), mycon, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
End If
exectuesql_exit:
Set rst = Nothing
Set mycon = Nothing
Exit Function
exectuesql_error:
Resume exectuesql_exit
End Function

比较精到的数据库操作。
Public Function ExecuteSQL(ByVal sql As String) As ADODB.Recordset ‘函数定义开始
Dim mycon As ADODB.Connection ’定义Connection
Dim rst As ADODB.Recordset ‘定义Recordset
Set mycon = New ADODB.Connection '建立Connection
mycon.ConnectionString = connstring ’指定Connection字符串
mycon.Open ‘打开数据库
Dim stokens() As String’定义变长字符串数组
On Error GoTo exectuesql_error ‘遇错误跳转
stokens = Split(sql) ’将SQL字符串分解为数组,不过Split函数肯定缺少了参数估计应该写成:stokens=split(sql," ")
If InStr("INSER,DELETE,UPDATE", UCase(stokens(0))) Then 如果SQL字符串中包函INSER,DELETE,UPDATE则进行如下操作,即直接添加、删除、更新
mycon.Execute sql ‘按SQL字符串操作数据库
Else 否则即SQL肯定是SELECT即查询数据库,取得记录集了
Set rst = New ADODB.Recordset ’新建Recordset
rst.Open Trim(sql), mycon, adOpenKeyset, adLockOptimistic ,取得记录集Recordset
Set ExecuteSQL = rst ‘函数返回记录集
End If
exectuesql_exit: 错误
Set rst = Nothing 释放rst
Set mycon = Nothing 释放mycon
Exit Function 结束函数
exectue