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

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

相关文章

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可