数据库及其相关控件_第1页
数据库及其相关控件_第2页
数据库及其相关控件_第3页
数据库及其相关控件_第4页
数据库及其相关控件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Database e suoi componenti associati一个关系数据库基本上就是存储表的数据,这个表由行和列的数据组成。在Visual Basic中,在Visual Basic中,列被称为域,行被称为记录。数据库引擎把所有的数据库当作关系表集,而不管它们的实际文件格式如何。当你使用外部数据库时,可以使用同样的关系术语。一个表就是一个用行或列组织起来的相关信息的逻辑组,与电子表格类似。数据库里的一列叫做域,域在Access 2007中叫做字段。表由它包含的域来定义,每个列描述了它保持的数据。当创建一个数据库的时候,要指定一个域的数据类型、最大长度和其它信息。域包含了字符、数字、甚

2、至图形。记录是由各个域包含的一个相应的数据组成的一组数据,这些信息保存在表的一行中,叫做记录。数据库记录要保证没有两行是一样的。为了更快地访问数据,大多数数据库使用索引。数据库索引是分类列表,其搜索比表快。每个索引项指向它所参考的数据库行。一旦数据存储到数据库中,使用结构化查询语言进行检索就变得更容易。用户在结构化查询语言中询问问题,叫做一个查询。单击Visual Basic的【外接程序】菜单中的【可视化数据管理器】,可以启动Visual Basic的外接数据库程序可视化数据管理器。这个程序具有自己的菜单和工具栏。另外还有两个基本的子窗口,即数据库窗口和SQL语句窗口。建立新的数据库,可以单击

3、【文件】菜单中的【新建】子菜单,然后依次指向需要的类型。可视化数据管理器会自动为用户创建一个新的数据库框架。在数据库窗口中单击鼠标右键,会出现一个快捷菜单。从快捷菜单中选择【新建表】,出现【表结构】窗口。首先在【表名称】文本框中输入要加入的表的名称,然后单击【添加字段】按钮,弹出一个对话框。在【名称】框中输入要添加的字段的名称,从【类型】组合框中选择字段的类型,最后选择字段的大小,单击【确定】按钮,就加入了一个字段。单击【关闭】按钮可以返回【表结构】窗口。单击【添加索引】按钮,弹出一个对话框,利用这个对话框可以为表创建索引。首先在【名称】框中输入要创建的索引的名称,然后在最下面的列表框中选择

4、索引要参考的字段,单击【确定】按钮,就创建了一个索引。单击【生成表】按钮,就可以创建一个新的表。在数据库窗口中选中新创建的表,单击鼠标右键,从弹出的快捷菜单中选择 【打开】按钮,这时弹出一个对话框,单击【添加】按钮,在这个对话框中输入各个字段的内容,然后单击【更新】按钮,便输入了一条记录。在输入所有的记录之后,一个表就完成了。在处理完所有的表之后,关闭可视化数据管理器,整个数据库便创建成了。现在有许多可以创建数据库的应用程序,如Access 2007。使用可视化数据管理器的好处是不需要在电脑上安装其它的软件,而且用它创建的数据库应用于Visual Basic中肯定是没有任何问题的。使用其它软件

5、的前提是用户的电脑上存在这样的应用程序。当然,使用专用的软件的好处是,它们功能强大而且完备。数据控件可以连接数据库,基于一个结构化查询语言查询数据库的表,打开特定数据库表和一个记录集,把数据域传给关联控件以显示和修改数据,基于关联控件中显示数据的修改,增加新记录或修改一个数据库,捕获访问数据时出现的错误。在窗体中添加数据控件,就像添加其它的Visual Basic控件一样,需要多少就添加多少。这里有条原则,对需要进行操作的每一个数据库表,使用一个数据控件。像Visual Basic的所有控件一样,数据控件有许多属性必须在设计时在属性窗口中进行设置。其中一些属性也可以在运行时进行设置。要使用数据

6、控件,至少需要设置Database Name和Record Source属性,一旦你设置了Database Name属性,Visual Basic会查询数据库中所有的表和可用查询,并且在Record Source属性的下拉式列表中显示出来。如果希望使用外部数据库,必须使用属性窗口来设置Connect属性。当从列表框中选择了一个表和查询,就能使用属性窗口为每个关联控件选择一个有效的Data Field设置。一旦设置了正确的属性,就可以使用数据控件的Refresh方法重新打开数据库,使用新的属性来设置和重建记录集。如果数据库不能打开,Visual Basic就会产生一个错误。数据控件还有一个在设计

7、时看不到的属性,叫做记录集,是一个对象型属性。一个记录集表示一个基本表的记录或运行一次查询语句得到的结果记录。使用Record Type属性来选择数据控件的记录集类型。DYNA Set和Snapshot类型的记录集存储在局部内存区。Table型的记录存储在Temp的磁盘空间。在代码中创建的记录集可以通过Set语句对数据控件的Record Set属性赋值。一个数据控件创建的记录集可以在运行时赋值到另一个数据控件。关联控件是数据感知控件,通过它可以访问到数据库中的信息。当一个控件与数据控件相关联时,Visual Basic把控件的值赋为当前数据库记录的域值。依次地控制显示数据和接受用户的修改。如果

8、修改过一个关联控件的数据,当移动到其它记录的时候,修改后的数据自动地写入数据库中。Visual Basic提供了几种内置的控件与数据控件进行关联。数据控件的EOF Action属性确定了当移动超过数据控件的记录集结尾的时候要进行的操作。数据控件还有一个BOF Action属性。如果把EOF Action属性设置为Add New,当你的移动范围超过最后一个记录时,数据控件会自动创建一个新记录,允许用户输入新的数据。如果一个新的数据输入、移出当前记录将自动激活数据库对新记录的更新和保存。如果你移出新记录而没有在新记录中输入数据的话,新记录将被丢失。这种方法为输入许多新记录提供了一个方便快捷的解决方

9、法。用户只需要简单地移动到数据库尾,并且使用Move Next按钮把一个记录移出文件尾,就可以开始增加新记录,输入记录后把当前记录向别处移动,那么,数据控件自动处理增加的记录并且更新数据库。数据控件为你提供了很强的功能,你可以不编写任何代码便实现了对数据库的操作。这是通过简单地设置和操作数据控件的属性,结合关联控件产生的用户界面来完成的。希望通过变成扩展Visual Basic的数据控件的功能。Visual Basic允许你操作它创建的数据控件和记录集对象,为上述要求提供了支持。在记录集中移动或修改当前的记录,称为航行。数据控件有四个箭头按钮,运行时单击数据控件上的四个箭头,可以显示数据库表的

10、各个记录。当前记录集中可以访问的记录叫做当前记录。任何时候,只有一个记录为当前记录,即显示在与数据控件关联的控件里的记录。当变成操作记录集时,需要确认当前记录是否有效。BOF Action和EOF Action属性提供了对状态的控制,但是也能编写代码检查BOF和EOF的属性值。这两个属性状态确定了当前记录在记录集中的位置。在处理数据库的过程中,经常需要把当前记录指针移动到记录集的第一个或最后一个记录。使用Move First方法,可以把当前记录指针移动到记录集的开始。使用Move Last方法,可以把当前记录指针移动到记录集的末尾。如果数据控件已经位于记录集的第一或最后一个记录,任何向头或尾的

11、移动操作或把EOF和BOF标志设置为True。如果BOF Action和EOF Action属性已经设置为1,关联控件就会被清除。使用Move方法在EOF和BOF外移动,Visual Basic将产生一个可捕获的错误。Move Next方法把记录集的下一个记录作为当前记录。一般来说,Move Next方法用在一个记录接一个记录的循环中,一次获得一个记录的数据。使用Move Previous方法可以把记录集中的前一个记录作为当前记录,即把当前记录向前移动。Bookmark属性允许保留当前的记录指针,直接定位到一个指定的记录。Bookmark属性中包含一个指向指定记录的指针,通过书签的值可以直接跳

12、到指定的记录。指针的值可以存储在变体型或字符串型的变量中。Move方法可以移动到任意指定的记录集的位置,语法是“记录集.Move 行 开始”。行的值确定了移动的记录数,开始参数相当于一个书签,指定这个参数,行相对于开始参数指定的记录进行移动。记录集还有另外两个属性,可以移动当前记录。Absolute Position是长整型属性,可获得或设置当前记录的位置。它是从零开始的。如果把Absolute Position的值设置为一个大于记录集对象中记录总数的值,就会引发一个错误。可以利用记录集的Record Count属性。Percent Position是一个单精度浮点型属性。这个参数的值必须在0

13、到100之间。在DYNA Set和Snapshot型的记录集中可以使用四个方法中的一个定位一个记录,即Find First、Find Last、Find Next、Find Previous方法。使用查找方法的时候,首先要描述查找标准,如表达式等于一个指定的域名。可以使用Seek方法在一个Table型的记录集中定位一个记录。当使用Seek定位一个记录时,Visual Basic使用表具有的索引属性的当前索引值,语法是“表. Seek 比较式,关键值”。在编辑了一个记录以后,用记录集对象的Update方法把修改后的信息保留到数据库中:“数据控件.Record Set. Update”。要更新一个

14、记录集的数据之前,要确认记录集对象是否可以修改。使用记录集对象的Updatable属性。要改变一个数据库的信息,必须使用一个可以修改的数据库。如果数据库不能修改,它下面的记录集和字段也不能修改。Snapshot型的记录集里的记录就不能修改。使用Add New方法创建一个新记录。当前记录指针被移动到新记录,为新记录的域赋值。使用Update方法保存新记录,当前记录指针恢复到原先的值。把记录指针定位到要修改的记录上,对响应的字段赋新值,使用Update方法或者Move、Find、Seek方法中的任何一种来更新数据库。要删除一个记录,先把当前记录指针定位到要删除的记录,然后利用Delete方法。Cl

15、ose方法会关闭记录集并且释放分配给它的资源。对一个已经关闭的记录集的成员方法进行一个访问操作,就会导致一个可以捕获的错误。事务是指一系列对记录集进行的可恢复的修改。如果希望在任何修改提交给数据库之前进行验证,可以使用事务。在编程中需要显式地开始有关事务。当事务打开的时候,对事件进行的任何修改都可以撤消。当确定所做的修改是正确的时候,可以在数据库中保存或者提交所做的修改。第一次打开一个数据库并且没有事务挂起的时候,事务状态为自动提交。对记录集所做的所有修改将直接写入数据库的表,这是不能恢复的。Visual Basic有三条语句支持事务处理:Begin Trans,Commit Trans和Ro

16、ll Back。在使用这些语句之前,应该确定数据库的Transactions属性被设置为True。事务是跨数据库的。事务语句适用于在工作台的所有事务。当使用Commit Trans和Roll Back时,所有的数据库被挂起事务都将提交或撤消。Begin Trans语句标志一个事务的开始,把后续的操作退出自动提交模式。一旦开始了一个事务,必须在关闭数据库或结束程序之前使用Commit Trans和Roll Back语句。当程序结束的时候,尚未提交的事务将自动取消。如果在一个事务正在进行的时候进行关闭数据库的操作,就会引发一个错误。Commit Trans将保存从Begin Trans命令打开事务

17、之后开始的对记录集的所有修改。在执行Commit Trans时,所有的修改变为永久性的,当前事务结束,事务将返回到自动提交状态。Roll Back倒退或取消当前事务的所有修改。它也将结束事务并使事务状态返回到自动提交状态。数据库控件的验证数据库的功能允许在新信息写入数据库之前检查对记录集所做的修改,允许描述在验证事件结束后哪个记录成为当前记录。验证事件不管是否修改关联控件中的数据,都可以被激活。在激活一个验证事件的时候,不能使用任何激活其它验证事件的方法,也不能调用Add New或其它重新定位的方法。在Visual Basic将修改从关联控件写入数据库并且把当前记录的指针定位到数据库里的下一个

18、记录的时候,验证事件被激活。在验证事件中,可以通过校验Save参数,确定任何关联控件是否已经被修改。Visual Basic自动检查每个关联控件的Changed属性,来查看自上一次数据库操作以来,其值是否被修改。Action参数告知什么导致验证事件被激活,并且允许在验证事件结束后重新定位当前记录的指针。在验证事件中,Visual Basic设置Action参数的值来指示哪一操作激活了事件。可以在对象浏览器中找到Action参数的数据常量。可以利用另外的三种方法来更新信息:Update Record方法、Update Controls和Refresh。数据控件的Update Record方法更新

19、数据控件指定的记录集,在当前记录集不反映关联控件中的数据时,可以使用Update Record方法。这个方法被调用的时候,不会引发任何事件。关联控件中的数据也不会用当前记录的数据进行自动更新。ADO数据控件使用ActiveX数据对象来快速建立数据绑定控件和数据提供者之间的连接。数据绑定控件是具有数据源属性的控件。数据提供者可以是任何符合规范的数据源。使用Visual Basic的类模块也可以很方便地创建派生的数据提供者。尽管可以在应用程序中直接使用ActiveX数据对象,但ADO数据控件有作为一个图形控件的优势,以及友好的界面。在Visual Basic的工具箱中,不少控件都可以作为数据绑定的控件,此外,Visual Basic还包括了几种数据绑定的ActiveX控件。用户也可以创建自己的数据绑定的ActiveX控件。ADO数据控件可以连接一个数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论