而dao模型则是片面控制数据库的残缺编程接口。 它们可以同时运用。 vb中的数据库编程就是创建数据访问对象, 这些数据访问对象对应于被访问的物理数据库的不同局部, vb数据库:也称为本地数据库, 这类数据库文件运用与microsoftaccess相反的格式。 3. odbc数据库:包括符合odbc规范的客户机/服务器数据库, 如microsoftsqlserver。 假如要在vb中创建真正的客户机/服务器运用程序, 可以运用odbcdirect直接把命令传递给服务器处理。 9.1.2vb数据库体系构造 vb提供了基于microsoftjet数据库引擎的数据访问能力, jet引擎担任处理存储、检索、更新数据的构造, 并提供了功能弱小的面向对象的dao编程接口。 vb数据库运用程序的组成 vb数据库运用程序包括三局部, 如图9. 1所示。 数据库引擎位于程序和物理数据库文件之间。 这把用户与正在访问的特定数据库隔离开来, 还是所支持的其他任何格式的数据库, 所运用的数据访问对象和编程技术都是相反的。 ??)用户界面和运用程序代码 用户界面是用户所看见的用于交互的界面, 包括用来请求数据库服务的数据访问对象和方法, jet引擎被包括在一组静态链接库(dll)文件中。 在运转时, 它把运用程序的请求翻译成对. mdb(access文件后缀)文件或其他数据库的物理操作。 并处理一切内部事务, 如索引、锁定、平安性和援用残缺性。 实现所需的数据操作。 另外, 用来管理查询所前往的结果。 ??)数据库 数据库是包括数据库表的一个或多个文件。 就是.mdb文件。 关于isam数据库, dbf(dbase文件后缀)文件或其他扩展名的文件。 或者, 数据库实质上都是被动的, 它包括数据但不对数据作任何操作。 2.数据库运用程序的寄存 数据库运用程序的这三个局部可以被区分放置在不同的位置上。 供单用户运用程序运用, 也可以放置在经过网络衔接起来的不同计算机上。 数据库可以驻留在中央服务器上, 让许多用户访问相反的数据。 将数据寄存在另一台机器上的数据库运用程序, 它们的不同点如图9. 在客户机/服务器系统中, 数据库引擎可以同时对多个客户机的运用程序提供服务、操作数据库并对每个本地运用程序前往所请求的记录。 数据库引擎与用户运用程序在相反的计算机上, 只要数据库驻留在远程计算机上。 它是驻留在dll文件中的本地数据库引擎, 在vb中, 经过衔接到odbc数据源, 如microsoftsqlserver等, 就可以创建客户机/服务器运用程序。 9.2本地数据库设计(access) vb中创建数据库的途径主要有: ??)可视化数据管理器:运用可视化数据管理器, ??)数据库运用程序:像foxpro、dbase或odbc客户机/服务器运用程序这样的产品, vb的数据管理器实际上是一个独立的可单独运转的运用程序visdata. exe。 它随装置过程放置在vb目录中, 也可以在vb开发环境中启动。 1.启动数据管理器 2.工具栏按钮 visdata窗口的工具栏提供了三组共9个按钮, 为了说明这些按钮所提供的功能, 我们利用vb提供的一个例子——数据库biblio. mdb来介绍。 针对数据库中的表进行查询操作。 下面我们对工具栏上的按钮进行复杂的说明。 ?当用户进行数据编辑操作时, 不直接影响数据库中的数据。 ③快照类型记录集(最左边的拉钮):以这种类型显示的数据只能读不能修正, 适用于只查询的情况。 ?)数据群组按钮 工具栏的中间一组按钮。 先用鼠标在要显示作风的按钮上单击一下, 然后选中某个要显示数据的数据表, 单击鼠标右键, 在弹出的菜单上选择翻开, 则此表中的数据就以所要求的形式显示出来。 ??)事务方式群组按钮 工具栏的最后一组按钮用于进行事务处理。 9.2.2详细实现 1.树立数据库 对数据管理器的基本功能有了初步的看法后, 我们这里所树立的数据库student. mdb(学生数据库)中各表如下: VB编程(1)树立数据库构造 这样一个新的数据库就树立好了, ??)添加数据表 将鼠标移到数据库窗口区域内, 单击鼠标右键, 在弹出的菜单中选择新建表命令, 利用对话框我们可以树立数据表的构造。 我们首先树立基本情况表。 在表名称中输入基本情况, 然后添加基本情况表的字段, 出现添加字段对话框, ?)树立索引 树立了表的构造后就可以树立此表的索引了, 这样可以加快检索速度。 单击添加索引按钮, 会出现如图9. 4所示的对话框, 经过此对话框可以将数据表的某些字段设置为索引。 我们这里选择的是学号。 假如需求树立多个索引, 则每完成一项索引后, 然后持续下一个索引的设置。 设置终了后, 单击封锁按钮前往到表构造对话框。 2.录入数据 数据表构造树立好之后, 就可以向表中输入数据了, 数据管理器提供了复杂的数据录入功能。 首先在工具栏上选定dbgrid显示作风的按钮, 然后在要录入数据的数据表上单击鼠标右键, 选择翻开选项, 则出现以网格作风显示数据的窗口, 假如此表中已有数据, 则此时会显示出此表中的全部数据;若此表中有数据, 如图9. 5所示。 我们这里是以基本情况表为例, 并且输入了局部数据后的情况。 3.树立查询 数据表树立好之后, 假如数据表中已经有数据, vb的数据管理器提供了一个图形化的设置查询条件的窗口——查询生成器。 选择实用程序菜单下的查询生成器, 或在数据库窗口区域单击鼠标右健?缓笤诘龅牟说ブ醒≡裥虏檠?如图9. 假设我们要查询学号为110002的学生基本情况, 可按下述步骤进行: (1)首先选择要进行查询的数据表, 单击表列表框中的基本情况表。 注意, 这里所选的字段就是我们在查询结果中要看的字段。 9.3数据控件 data控件是visualbasic访问数据库的一种利器, 它能够利用三种recordset对象来访问数据库中的数据, 数据控件提供无限的不需编程而能访问现存数据库的功能, 允许将visualbasic的窗体与数据库方便地进行衔接。 应先在窗体上画出控件, 再经过它的三个基本属性connect、databasename和recordsource设置要访问的数据资源。 visualbasic默许的数据库是access的mdb文件, 此外, databasename属性指定详细运用的数据库文件名, 包括一切的途径名。 假如衔接的是单表数据库, 则databasename属性应设置为数据库文件所在的子目录名, 这些数据构成记录集对象recordset。 该属性值可以是数据库中的单个表名, 也可以是运用SQL查询语言的一个查询字符串。 当记录指针指向recordset对象的开始(第一个记录前)或完毕(最后一个记录后)时, 数据控件的eofaction和bofaction属性的设置或前往值决议了数据控件要采取的操作。 定位到一个有效记录, 触发数据控件对第一个记录的有效事情validate 1移过记录集完毕位, 触发数据控件对最后一个记录的有效事情validate 2向记录集加入新的空记录, 可以对新记录进行编辑, 移动记录指针, 必需经过能与它绑定的控件来实现。 可与数据控件绑定的控件对象有文本框、标签、图像框、图形框、列表框、组合框、复选框、网格、db列表框、db组合框、db网格和ole容器等控件。 要使绑定控件能被数据库约束, 绑定控件、数据控件和数据库三者的关系如图9. visualbasic将当前记录的字段值赋给控件。 只要移动记录指针, 数据控件在装入数据库时, 当数据控件的bofaction属性值设置为2时, 当记录指针移过记录集完毕位, 2学生基本情况表构造 表9. 表中数据可自行录入。 例9. 2设计一个窗体用以显示树立的student. 故需求用6个绑定控件与之对应。 本例中不需求编写任何代码, 详细操作步骤如下: (1)参考如图9. 在窗体上放置1个数据控件, 一个图形框、5个文本框和5个标签控件。 5个标签控件区分给出相关的提示说明。 (3)图形框和5个文本框控件text1~text5的datasource属性都设置成data1。 将下拉出基本情况表所含的全部字段, 区分选择与其对应的字段照片、学号、姓名、性别、专业和出生年月, 运转该工程即可出现图9. 8所示效果。 5个文本框区分显示基本情况表内的字段:学号、姓名、性别、专业和出生年月的内容, 图形框显示每个学生的照片。 运用数据控件对象的4个箭头按钮可遍历整个记录集中的记录。 单击最左边的按钮显示第l条记录;单击其旁边的按钮显示上一条记录;单击最左边的按钮显示最后一条记录;单击其旁边的按钮显示下—条记录。 数据控件除了可以阅读recordset对象中的记录外, 同时还可以编辑数据。 假如改变了某个字段的值, visualbasic6. 0提供了几个比较复杂的网格控件, 当把数据网格控件的datasource属性设置为一个data控件时, 网格控件会被自动地填充, 默许控件名其它属性设置 图9. 9运用数据网格控件 9.3.2数据控件的事情 reposition事情发生在一条记录成为当前记录后,可以在这个事情中显示当前指针的位置。 在例9. 2的data1_reposition事情中加入如下代码: 这里, absoluteposition属性指示当前指针值(从0开始)。 数据控件的标题区会显示记录的序号。 当要移动记录指针、修正与删除记录前或卸载含有数据控件的窗体时都触发validate事情。 5中的值。 普通可用validate事情来检查数据的有效性。 在例9. 2中, 假如不允许用户在数据阅读时清空性别数据, 可运用下列代码: 此代码检查被数据控件绑定的控件text3内的数据能否被清空。 若性别对应的文本框text3被置空, 可以在代码中用数据控件的方法访问这些属性。 或当recordsource在运转时被改变后, 必需运用数据控件的refresh方法激活这些变化。 例如:将例9. 使所衔接数据库所在的文件夹可随程序而变化: updatecontrols方法可以将数据从数据库中重新读到被数据控件绑定的控件内。 因而我们可运用updatecontrols方法终止用户对绑定控件内数据的修正。 例如:将代码data1. updatecontrots放在一个命令按钮的click事情中, 就可以实现对记录修正的功能。 当对绑定控件内的数据修正后, 可强制数据控件将绑定控件内的数据写入到数据库中, 而不再触发validate事情。 在代码中可以用该方法来确认修正。
原文链接:https://www.f2er.com/vb/261304.html