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

公共模块

另一位博主的模块代码

添加函数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
(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐