zoukankan      html  css  js  c++  java
  • 红皮书再总结——实例二

    实例2 使用ADO访问数据源

    (一)制作特点:

    第一、通过ODBC数据源访问数据库。

    第二、使用ADO Recordset 对象保存数据,执行Update方法实时更新。

    第三、通过文本框和按钮事件完成数据显示和修改。

    (二)设计分析:

    ADO更新数据源有两种方法:

    方法一、将数据检索保存到RecordSet对象中,用Update方法进行更新,如果使用断开连接的RecordSet对象,则用UpdateBatch方法进行更新。

    方法二、用Command对象执行SQL数据更新命令,这时不需使用RecordSet对象或用其他方法将数据检索到本地计算机。

    (三)技术要领:

    1.RecordSet的记录锁类型

    这里写图片描述

    2.RecordSet的临时表位置

    这里写图片描述
    3.浏览RecordSet中的记录
    这里写图片描述
    这里写图片描述

    4.ODBC数据源类型

    这里写图片描述

    (四)操作过程:

    (1)创建ODBC数据源:

    开始——程序——管理工具——ODBC数据源(32位)

    (2)设计窗体

    两个标签框+三个文本框+两个命令按钮

    (3)建立ADO引用

    工程——引用——Microsoft ActiveX Data Objects 2.5 Library

    (4)编写代码

    ①该例子的代码有一个需要注意的地方,就是当点击“前一纪录”和“后一记录”点到头之后就不能再翻页了,如下图:
    这里写图片描述

    后来知道了BOF和EOF的区别,给大家介绍一下,大家先看一下代码部分:

    Private Sub Command1_Click()
    
    dosave
    
    objRS.MovePrevious       '使前一记录成为当前记录,如果记录指针指向第一个记录之前,则使其指向第一个记录
    
    If objRS.BOF Then objRS.MoveLast         
    
        txtUserName = objRS.Fields("用户名").Value
    
        txtPassword = objRS.Fields("口令").Value
    
        txtMsg = objRS.AbsolutePosition & "/" & objRS.RecordCount
    
    End Sub
    
    Private Sub Command2_Click()
    
    dosave
    
    objRS.MoveNext           '使下一记录成为当前记录,如果记录指针指向最后一个记录之后,则使其指向最后记录  
    
    If objRS.EOF Then objRS.MoveFirst
    
        txtUserName = objRS.Fields("用户名").Value
    
        txtPassword = objRS.Fields("口令").Value
    
        txtMsg = objRS.AbsolutePosition & "/" & objRS.RecordCount
    
    End Sub
    

    现在大家知道BOF和EOF的区别了吗?

    BOF:使前一记录成为当前记录,如果记录指针指向第一个记录之前,则使其指向第一个记录;

    EOF:使下一记录成为当前记录,如果记录指针指向最后一个记录之后,则使其指向最后记录。

    所以,将以上两行的此代码改为以下代码即可:

    If objRS.BOF Then objRS.MoveFirst
    
    If objRS.EOF Then objRS.MoveLast
    

    ②AbsolutePosition

    直接翻译,翻译出来是绝对的位置,甚至我一度认为它是绝对地址的意思,那么它到底是什么意思呢?

    我们先来看一下代码部分:

    txtMsg = objRS.AbsolutePosition & "/" & objRS.RecordCount
    

    再来看一下窗体部分:
    这里写图片描述

    可见,该语句是用来显示“1/8”的,是SQL中用来分页的,还有很多种分页方式,给大家一一介绍一下:

    PageSize--每一页所含记录数;

    PageCount--当前记录的总页数;

    AboslutePage--当前记录位置的绝对页数;

    RecordCount--当前记录集的总数;

    AbsolutePosition当前记录所在的绝对位置;

    BOF--指针是否在记录集的头处;

    EOF--指针是否在记录集的尾处;

    BookMark--设置和得到当前记录的唯一位置。

    (五)连接数据库方式:

    第三种,使用ODBC数据源。

    实际上,不管是哪种数据源,使用ADO访问都需要3个步骤:建立数据源连接(创建Connection对象)检索数据(创建RecordSet对象)操作数据

  • 相关阅读:
    TimusOJ Bald Spot Revisited(质因数分解)
    hdu 6170 Two strings(dp)
    线性筛资料
    BZOJ3437 小P的牧场(斜率优化dp)
    First Blog
    【BZOJ】3930: [CQOI2015]选数
    【Ctsc2011】幸福路径
    【BZOJ】4012: [HNOI2015]开店
    【BZOJ】 3238: [Ahoi2013]差异
    【NOI2014】动物园
  • 原文地址:https://www.cnblogs.com/txge/p/13973663.html
Copyright © 2011-2022 走看看