数据库学习|学生代码笔记---002

来源:互联网 发布:mac office 登陆激活 编辑:程序博客网 时间:2024/06/07 05:44
前言:
       今天分享一个小的函数,别看它小,却是学生系统和数据库连接的桥梁,它就是SQLEXECUTE函数。
       PS:这是一篇长文,友情提醒,择其有用的看。
内容:
1. 位置
     SQLEXECUTE() 函数,在模块中定义,因为常用,是所有的窗体都可以调用的函数。
2. 作用
    根据用户提供的SQL查询语句,建立或者重组成一个数据库。
3. 代码理解
    下面是函数的定义以及我的一些浅薄的理解
     首先是函数的声明
    数据库学习|学生代码笔记---002 - 14期 吴佳莹 - 吴佳莹 廊坊师范学院信息技术提高班十四期
   接下来的内容分成一些小的知识点
(1)值传递和地址传递
       值传递 ByVal   传递给形参的是调用过程中的对应的实参的值,因为实参和形参各占不同弄为止的存储空间,被调用过程中,改变了形参的值,但不会改变实参的值
       地址传递 ByRef 即调用的过程中将实参变量的内存地址传递给被调用过程的形参,也就是说形参月实现使用相同地址的内存单元。因此在调用的过程中改变了形参的值,就等于改变的实参的值

(2)vb 连接数据库
         dim cnn as ADODB.Connection
         dim rst as ADODB.Recordset
         ... ...
         Set rst= New ADODB.Recordset
         Set ExecuteSQL=rst

ADODB: 是一个数据模型,使用microsoft.jet.oledb.4.0的数据库引擎。是一个数据对象,操作数据库需要通过编写代码来实现

代码理解:
(1)声明 ---》说明有这个东西
(2)实例化---》给他一个空间
(3)使用之

连接数据库之路:
 vb ---》(连接数据库的对象)----》(数据库结果集组件)---》数据库
  可进行的操作 打开或关闭数据库连接, 查询数据库
(3)错误处理程序
数据库学习|学生代码笔记---002 - 14期 吴佳莹 - 吴佳莹 廊坊师范学院信息技术提高班十四期
On Error  是函数出错自动会执行的吗?
一般函数有哪些错误?
常见的错误:
1.语法错:在输入的语句不正确的时候发生。
2.运行错:在一个命令企图运行一个无效的动作时发生。
3.逻辑错:排出了以上的错误,还得不到想要的结果。
它是如何判断出错的?,
 当用户没有给出解决方法的时候,vb提供了省缺的错误处理可以提供给用户出现错误的编号和对错误的一段简短秒速并自动终止应用程序。
因为vb不支持集中错误处理技术,每个过程或事件都要求有一个错误处理程序来解决一个它自己的错误,所以我们想要通过一个工程出错来报一类错误,就需要自己编写错误处理程序。
如何自己编写错误数理程序:
创建一个错误处理程序的三个基本步骤:
1.激活一个错误处理程序 
2.编写对可能发生的错误进行处理的代码
3.继续程序的运行
下面具体介绍一下详细步骤:
通过激活错误处理程序来对运行错进行处理。
在过程中使用On Error GoTo语句加一个命名的标号来激活错误处理程序。标号是用来指出错误发生时程序转向错误处理程序的入口。(Identifies a point in code to which the execution will branch when an error is encountered)。
这部分代码称为"错误处理程序",命名和变量的命名一样,可以以冒号结尾。放在过程的Exit Sub语句之后。 下面的程序是DataErr错误处理程序实现对数据溢出错误的处理:
Private Sub Command1-Click()
    On Error GoTo DataErr
    Dim num As Integer, var As Integer    num=10
    var = num * 10000
    Print var
    Exit Sub
    DataErr:
MsgBox “Try multiplying with a smaller integer”

End Sub
(4)数据集的打开
数据库学习|学生代码笔记---002 - 14期 吴佳莹 - 吴佳莹 廊坊师范学院信息技术提高班十四期
adOpenKeyset是游标类型
adLockOptimistic是加锁类型
前辈有关数据集的打开方式的总结
那何为游标,何为加锁?
游标:
前辈的有关SQL游标的总结
游标的类型:
  1、仅向前游标(不支持滚动)即 Const adOpenForwardOnly=0
  2静态游标(不检测数据行的变化)即 Const adOpenKeyset=1
  3键集游标(能反映修改,但不能准确反映插入、删除)即 Const adOpenDynamic=2
  4动态游标(反映所有数据行的改变)即 Const adOpenStatic=3
加锁:
锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。 我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象。即如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。这些问题包括:丢失更新、脏读、不可重复读和幻觉读:
前辈的有关SQL锁的总结
(5)函数中的判断
数据库学习|学生代码笔记---002 - 14期 吴佳莹 - 吴佳莹 廊坊师范学院信息技术提高班十四期
( if ) 如果将用户输入的SQL的第一个字符串全都大写之后,其中含有 INSERT,DELETE,UPDATE,即是在原有的数据库的基础上进行修改形成新的数据库,
故,执行该SQL查询语句。
并在执行完后,弹出提示框,表示查询成功。
( else ) 否则是SELECT,是筛选,不修改原来的表,
需要将查询的结果放在一个新建的表里。
故,新建一个记录集
并返回查询到的记录的条数。表示查询完成。

(6)退出操作
数据库学习|学生代码笔记---002 - 14期 吴佳莹 - 吴佳莹 廊坊师范学院信息技术提高班十四期
什么时候会调用这个函数?------函数正常退出的时候
为什么要清空记录集和中断数据库连接?------清除缓存
数据库学习|学生代码笔记---002 - 14期 吴佳莹 - 吴佳莹 廊坊师范学院信息技术提高班十四期盗图自下面链接的大神
 
exit() 和_exit()的区别

 后记:
不怕不知道,就怕不知道。
原创粉丝点击