vb与数据库结合过程
相信小伙伴们在敲完了“学生管理系统”后,会留有一个问题(标题),这里我们来浅谈一下这个过程,而非内部结构中的复杂程度,我相信了解这些后我们可以理解的更加深刻。
首先我们在学习完VB课本后肯定了解有四种连接数据库的方式(data 控件、DAO对象、ADO data控件、ADO对象),其中的差别和联系这里就不一一介绍了,然后后面我们通过红皮书又了解到了OLE DB(更加底层的接口---宏观讲把它封装好就是ADO)和ODBC,这又是什么鬼?最终引出学生管理系统这个项目。终于将前面讲到的知识都用到了;一幅导图相信你会理解的更加透彻。
首先说说OLE DB和ODBC接下的不解之缘吧。
1:OLE DB针对的对象更加广泛-任何数据存储而ODBC仅仅是针对基于sql的数据源的。
2:但是由于ODBC使用的更加广泛,因此OLE DB获得的驱动程序相对比较少,但是确兼容访问ODBC的数据源
综上所述:ODBC相对来说是OLE DB的一个数据存储的一个子集,不仅仅需要符合ODBC的标准还需要符合OLE DB 的标准(service provider),类似于-sql server的ODBC驱动程序一样;只不过现在OLE DB 提供了一组统一的OLE DB服务程序(ODBC OLE DB provider),并且用来替代ODBC驱动程序管理器,并不会造成这个新型接口在ODBC 驱动程序之上的层次,从而造成问题。
再来一幅导图带我们来看看VB和sql server究竟是如何连接的!-数据库系统原理
不知道您看了这幅图片了解的怎么样了呢?肯定还是不知道上述两幅图中含义吧,辣么下面来聊聊其中的含义。
ADO(activex data object)
ADO是一个面向对象的COM组件库(分为有源数据库和无源数据库),用ADO访问数据库,其实就是利用ADO中三个独立对象来操作数据库中的数据:分别为connection(指定数据源来源)、recordset(面向查询的结果(记录集,修改当前记录的位置来实现对数据库的访问))、command(定义了一个可以在数据源上执行的命令或查询)
三者配合的过程:首先通过发送设置链接的服务器同数据库的连接,连接后通过发送一个查询指令到服务器上面,最后数据库服务器执行查询,把查询到的数据存储到recordset,然后返回给对象
ODBC(open data base connectivity)
ODBC(ADO的前身),服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(application program interface)。大部分sql语句通过这个API接口来使得对ODBC的访问
创造原因:
早期的数据库连接是非常困难的.每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API有深刻的了解.因此能处理各种各样数据库的通用的API就应运而生了.也就是现在的ODBC。
1:软件只能伴随数据库系统的版本而创造 2:统一软件不兼容不同的数据库类型
类型:
用户dsn只能用于本用户;系统dsn(本地所有用户可以操作)和文件dsn(实现异地登录操作)的区别只在于连接信息的存放位置不同---系统dsn存放在odbc储存区里,而文件dsn则放在一个文本文件中。
执行过程:
它通过使用相应应用平台上和所需数据库对应的驱动程序与应用程序的交互来实现对数据库的操作,避免了在应用程序中直接调用与数据库相关的操作,从而提供了数据库的独立性
DAO(DataAccessObject)
即数据访问对象集,是Microsoft提供的基于一个数据库对象集合的访问技术。和ODBC一样,他们都是WindowsAPI的一部分,可以独立于(DBMS)进行数据库的访问。因为DAO绕过中间的环节,直接通过数据库引擎(Microsoft jet database engine)完成对各种对象的操作,所以其执行速度较快。