学生信息管理系统已经敲完了, 也进行了第一次验收, 结果不是太理想之前的总结也没有及时发表现在重新复习一遍, 把它发表从今天开始, 我们就进入了代码分析阶段现在我们就来分析一下模块中的几个函数 PublicFunctionExecuteSQL(ByValSQLAsStr
学生信息管理系统已经敲完了, 也进行了第一次验收, 结果不是太理想之前的总结也没有及时发表现在重新复习一遍, 把它发表 从今天开始, 我们就进入了代码分析阶段现在我们就来分析一下模块中的几个函数 Public Function ExecuteSQL(ByVal SQL As Str
学生信息管理系统已经敲完了, 也进行了第一次验收, 结果不是太理想之前的总结也没有及时发表现在重新复习一遍, 把它发表
从今天开始, 我们就进入了代码分析阶段现在我们就来分析一下模块中的几个函数
- Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
- 'executes SQL and returns Recordset
- Dim cnn As ADODB.Connection
- Dim rst As ADODB.Recordset
- Dim sTokens() As String
- On Error GoTo ExecuteSQL_Error
- sTokens = Split(SQL)
- Set cnn = New ADODB.Connection
- cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '非 Select 语句
cnn.Execute SQL '数据量不大时, 可以在连接上, 直接执行 SQL 语句
MsgString = sTokens(0) & "query successful"
'虽然 MsgString 不是返回值, 但传递方式是 ByRef, 实参地址和这个地址相同
Else 'Select 语句
- Set rst = New ADODB.Recordset
- rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
- '得到临时表, 游标指向第一条记录'get RecordCount,
- Set ExecuteSQL = rst
- MsgString = "查询到" & rst.RecordCount & _
- "条记录"
- End If
- ExecuteSQL_Exit:
- Set rst = Nothing
- Set cnn = Nothing
- Exit Function
- ExecuteSQL_Error:
- MsgString = "查询错误:" & _
- Err.Description
- Resume ExecuteSQL_Exit
- End Function
ExecuteSQL 函数:
含义: 利用 SQL 语句查询字符串, 返回 ADO 记录集
1split() 函数
英文解释: vt. 分裂; 分开
计算机语言解释: 返回一个下标从零开始的一维数组, 它包含指定数目的子字符串
语法: Split(expression[, delimiter[, count[, compare]]])
个人理解: split(SQL) 就是把整个 SQL 语句拆解为一个数组
例如:
- SQL="select * from user_Info"
- split(SQL)
- sTokens(0)=select
- sTokens(1)=*
- sTokens(2)=from
- sTokens(3)=user_Info
这样就把一个完整的 SQL 语句拆解成了一个数组
2Instr() 函数
含义: 字符串处理函数, 返回要截取的字符串在源字符串中的位置
语法: Instr([start,]string1,string2[,compare])
从 Start(若省略从第一位开始) 位置开始, 在 string1 中寻找 string2, 如果没有找到则返回 0
例如:
若 SQL="select * from user_Info"
则 InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0)))=0
来源: https://www.php1.cn/detail/php-707518f6b3.html