欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

学生信息管理系统 模块代码总结

程序员文章站 2022-06-16 14:28:59
公共模块 另一位博主的模块代码 添加函数executesql——执行sql语句 public function(功能) executesql(byval sql as s...

公共模块

另一位博主的模块代码

添加函数executesql——执行sql语句

public function(功能) executesql(byval sql as string, msgstring as string) as adodb.recordset(记录集)

'两个参数:sql用来存放需要执行的sql语句,msgstring用来返回执行的提示信息。对这两个参数进行数据类型定义,定义为字符串型。
byval——按值传递关键字。在定义通用过程时,如果形参前面有关键字byval,则该参数用传值方式传送,否则即以引用(即按地址)方式传递。
   '传递参数sql传递查询语句,msgstring传递查询信息
    '自身以一个数据集对象的形式返回

     dim cnn as adodb.connection
    ' 定义cnn 为数据库链接的形式,配合connectstring()函数链接并打开数据库 

      dim rst as adodb.recordset
    '定义一个临时表(记录集),来存放数据库中取出的数据源

       dim stokens() as string
      '定义一个字符串数组stokens(),将sql语句按数组的形式存放,在程序中要使用变量,这些是数组变量,要先定义

        on error goto executesql_error
       '如果出错,进行的应急处理。执行时发生错误,将转到executesql语句处继续执行

      '用split函数产生一个包含各个字符串的数组(通过split函数将sql 语句按单词存入数组,例:如果sql语句是 select * from student ,那么运行的结果就是——stokens(0)= "select",stokents(1)="*" ,stokens(2)="from",stokens(3)="student"  )
        stokens = split(sql)——split分歧,分裂

   '创建链接
        set cnn = new adodb.connection

    '通过connectstring将数据库链接,并且打开
        cnn.open connectstring

   '判断数组字符串中是否含有指定内容(ucase$-将字符串全部转换成大写后判断是否存在)
        if instr("insert,delete,update", ucase$(stokens(0))) then

 '执行查询语句
        cnn.execute sql

 '返回查询信息
        msgstring = stokens(0) & "query successful"
    else

 '创建数据集对象
        set rst = new adodb.recordset

  '返回查询结果(rst临时表记录并打开trim记录的sql操作字符串在数据库中的查询结果,以cnn的字符串表达式打开方式打开odbc数据源,adopenkeyset确定游标类型(查找方式)为键集游标(不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所做的数据更改依然可见),adlockoptimistic确定加锁类型(当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作)
        rst.open trim$(sql), cnn, _
            adopenkeyset, _
            adlockoptimistic
        'rst.movelast  'get recordcount

 '返回记录集对象(将得到的临时列表赋值给executesql函数,由他传回并进一步赋值给mrc)
        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