当前位置: 首页 > article >正文

学生信息管理系统模块ExecuteSql 函数详解


'    ExecuteSQL这个函数简单的说,就是一个判断执行SQL语句的一个函数,
'    首先判断SQL这个变量,用SPLIT分割成数组形式给了数组变量sTokens ,
'    然后检测是否包含"INSERT,DELETE,UPDATE,EXECUTE",这几个命令,
'    如果包含就表示不是查询,就直接执行SQL语句,如果不包含,
'    那么基本上只会有“SELECT”,这表示查询命令,就显示符合查询条件的数量
Public Function executeSql(ByVal SQL As String, Msgstring As String) As ADODB.Recordset
'传递参数SQL传递查询语句,Msgstring 传递查询信息。自身以一个数据集对象的形式返回
Dim cnn As ADODB.Connection '定义连接
Dim rst As ADODB.Recordset
Dim sTokens() As String '定义字符串
On Error GoTo executesql_error '错误处理
sTokens = Split(SQL)   '用Split函数产生一个包含各个子串的数组
Set cnn = New ADODB.Connection '创建连接
cnn.Open connectstring
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then 'UCase$ 将其中包含转化为大写字符串  InStr 指定一字符串在另一字符串中最先出现的位置
' 判断字符串中是否含有指定内容
cnn.Execute SQL '执行查询语句
Msgstring = sTokens(0) & "query successful"
Else
Set rst = New ADODB.Recordset '创建数据集对象
 rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic 'Trim$ 将字符串中的空格去掉
'返回查询结果
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

对于红色部分  rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic涉及到Recordset 对象方法,下面做相因的介绍:

Recordset对象方法

Open方法

recordset.OpenSource,ActiveConnection,CursorType,LockType,Options

Source

Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored


ActiveConnection

Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。

 

CursorType

Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnlyadOpenKeysetadOpenDynamicadOpenStatic,分述如下:

--------------------------------------------------------------

常数常数值说明

--------------------------------------------------------------

adOpenForwardOnly 0缺省值,启动一个只能向前移动的游标(Forward Only)。

adOpenKeyset 1启动一个Keyset类型的游标。

bbs.bitsCN.com

adOpenDynamic 2启动一个Dynamic类型的游标。

adOpenStatic 3启动一个Static类型的游标。

--------------------------------------------------------------

LockType

Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnlyadLockPrssimisticadLockOptimisticadLockBatchOptimistic等,分述如下:

-------------------------------------------------------------

常数常数值说明

--------------------------------------------------------------

adLockReadOnly 1缺省值,Recordset对象以只读方式启动,无法运行AddNewUpdateDelete等方法

adLockPrssimistic 2当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。

adLockOptimistic 3当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。

adLockBatchOptimistic 4当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。

                 前一阵子敲完了学生信息管理系统,自己尝试着给工程添加了“查询班级信息”,然后自己仿照着源代码写了写,结果。。运行总是失败。后来师傅开会我又重提了这个问题,师傅让新建一个工程,新建一个表,创建一个查询老师信息的工程。这样下来才又重新敲了模块的代码。发现自己其实模块的代码百分之五六十都不懂,于是明白自己为何原来敲不对了,代码根本没懂怎么敲的好? 接下来就是各种百度,msdn,各种资料各种查。至此才对模块代码有个较为深入的了解。

       这次博客,希望可以跟各位同仁多多交流,同时也提醒自己,学习要踏实,一步一个脚印的往下走才走的长远。


http://www.lryc.cn/news/2416590.html

相关文章:

  • 属性PropertyInfo的使用
  • 航天器状态(位置速度)转轨道六根数
  • EPon F4503.0作为交换机使用废旧光猫中国电信光猫改交换机功能作为无线wifi或者交换机使用天翼网关中兴ZXHN免拆机获取破解超级管理员密码
  • AT24C04 eeprom读写测试
  • hotstuff共识算法总结
  • 初学者如何制作一个简单的HTML个人网页
  • IEEE1394(火线)接口全面了解
  • Freemaker指令总结
  • 文本处理正则表达式:grep
  • MySQL字符集的设置
  • C语言“学生信息管理系统”功能详解及代码展示2023级慕课版
  • go二维map_记一次坑爹的golang 二维map判断问题
  • Android Studio 代码混淆(你真的会混淆吗)
  • JSP基于web仓库管理系统v83k3(程序+源码+数据库+调试部署+开发环境)
  • RISC架构
  • 多线程编程java_java多线程编程
  • 递归调用栈溢出问题分析与解决
  • C#的Winform多语言实现(resx文件)
  • 电脑时间老是重置?一招教你轻松解决!
  • 黑色主题个人主页HTML源码
  • 印度电影推荐
  • 教您如何使用WebMatrix创建第一个网页
  • 网络安全笔记-信息安全工程师与网络安全工程师考试大纲(附:Web安全大纲)
  • Windows xp正版验证序列号大全
  • 如何利用CSDN资源来建立技术社区 - 博客篇
  • Farpoint使用一点小总结
  • NSTimer介绍
  • 【C语言深度剖析】深入理解C语言中的移位操作符(代码+图解)
  • 群体智能优化算法之人工鱼群优化算法(Artificial Fish Swarm Algorithm,AFSA)
  • 视频下载网址