【学生信息管理系统】模块代码的理解

2024-08-26 16:58

本文主要是介绍【学生信息管理系统】模块代码的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学生信息管理系统中,最难理解的代码就是模块中的,理解了模块中的一些代码,学生信息管理系统基本上就掌握了,剩下的窗体中的代码都是重复的。模块中的代码又以ExecuteSQL函数最费解。

<span style="font-size:14px;">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                              '判断字符串中是否含有指定内容。cnn.Execute SQL                                                                     '执行SQL语句MsgString = sTokens(0) & "query successful"                                         '返回查询信息ElseSet rst = New ADODB.Recordset                                                       '创建数据集对象rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic                            Set ExecuteSQL = rstMsgString = "查询到" & rst.RecordCount & "条记录"End IfExecuteSQL_Exit:Set rst = Nothing                                                                        '清空数据集对象Set cnn = Nothing                                                                        '中断连接Exit Function
ExecuteSQL_Error:                                                                            '错误类型判断。MsgString = "查询错误:" & Err.DescriptionResume ExecuteSQL_Exit
End Function</span><span style="color: red; font-family: Calibri;font-size:18px;"> </span>

sTokens = Split(SQL)

Split 函数:返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

 写一句SQL语句:"select *from student_Info"

                执行sTokens=SplitSQL

                sTokens0="select"

               sTokens1="*"

                sTokens2="from"

              sTokens3="student_Info"

         这样就把一个查询语句拆分成了一个数组

<span style="color: rgb(255, 0, 0); font-family: 宋体; font-size: 18px;">If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then</span>

Instr函数:返回 Variant (Long)

     InStr([start, ]string1, string2[, compare]),下标从1开始,返回指定一字符串在另一字符串中最先出现的位置。在字符串string1中,从start开始找string2,省略start时,string1头开始找。找不到时,函数值为0

Ucase$函数:返回 Variant(String),其中包含转成大写的字符串。只有小写的字母会转成大写;原本大写或非字母之字符保持不变。

Execute 方法:运行动作查询或执行 SQL 语句,它们都不返回行。


rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic  


语法格式:

recordset.Open Source, ActiveConnection, CursorType, LockType, Options

 

参数说明:

  1.  Source可选。Variant,计算有效的 Command 对象、SQL 语句、表名、存储过程调用、URL 或包含持久存储的 Recordset 的文件或 Stream对象的名称。
  2. ActiveConnection可选。Variant 或 String,Variant 用于计算有效的 Connection 对象变量的名称;String 包含ConnectionString 参数。
  3. CursorType可选。CursorTypeEnum 值,确定当打开 Recordset 时提供者应使用的游标类型。默认值为 adOpenForwardOnly。
  4. LockType可选。LockTypeEnum 值,确定打开 Recordset 时提供者应使用的锁定类型(并发)。默认值为 adLockReadOnly。
  5. Options可选。Long 值,指示如果 Source 参数表示的不是 Command 对象,提供者应如何计算该参数;或者指示应从先前保存 Recordset的文件中恢复 Recordset。可以是一个或者多个 CommandTypeEnum 或 ExecuteOptionEnum 值。

 其中:

1、CursorType参数的取值:

  • adOpenDynamic-使用动态游标。其他用户所作的添加、更改或删除均可见,而且允许Recordset 中的所有移动类型(如果提供者不支持书签,则书签除外)。
  • adOpenForwardOnly-默认值。使用仅向前游标。除了在记录中只能向前滚动外,与静态游标相同。当只需要在Recordset 中进行一个传递时,用它可提高性能。
  • adOpenKeyset-使用键集游标。尽管从您的Recordset 不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所作的数据更改依然可见。
  • adOpenStatic-使用静态游标。一组记录的静态副本,可用于查找数据或生成报告。其他用户所作的添加、更改或删除不可见。
  • adOpenUnspecified-不指定游标类型。

 2、LockType参数的取值:

  • adLockBatchOptimistic-指示开放式批更新。需要批更新模式。
  • adLockOptimistic-指示逐个记录开放式锁定。提供者使用开放式锁定,仅在调用Update 方法时锁定记录。
  • adLockPessimistic-指示逐个记录保守式锁定。提供者要确保记录编辑成功,通常在编辑之后立即在数据源锁定记录。
  • adLockReadOnly-指示只读记录。无法改变数据。
  • adLockUnspecified-未指定锁定类型。创建副本时,副本与源对象使用相同的锁定类型。
学生信息管理系统中,许多的VB代码知识,都是接触过的,综合以前学过的VB知识,模块部分才是最应该认认真真去学习的。



这篇关于【学生信息管理系统】模块代码的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109147

相关文章

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型