冰冻三尺 之 "访问数据库"
几个数据库的小例子敲完了,一般一个例子也就是分成了三部分,对数据库的访问,对数据库的操作和释放数据库的数据,而这几个例子都是用的ADO模型,接下来分析一下ADO模型
首先ADO模型和系统的数据库是什么关系
图中说的很清晰明了,ADO相当于应用程序和数据之间的一个媒介,应用程序通过ADO模型来
对数据进行操作,而ODBC,OLEDB等又是ADO和数据库之间的一个桥梁,ODBC和OLEDB将数据库中的数据转换成ADO能够识别的数据然后传递给ADO。
几个概念如下
【ODBC】 是一种底层的访问技术,因此,ODBCAPI可以是客户应用程序能从底层设置和控制数据库,完成一些高级数据库技术无法完成的功能;但不足之处由于ODBC只能用于关系型数据库,使得利用ODBC很难访问对象数据库及其他非关系数据库。
一个完整的ODBC由下列几个部件组成:
应用程序(Application)。
ODBC管理器(Administrator)。该程序位于Windows控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。
驱动程序管理器(DriverManager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。
ODBC API。
ODBC驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。
数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。
在ODBC中,ODBCAPI不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBCAPI的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。
在访问ODBC数据源时需要ODBC驱动程序的支持。可以安装SQLServer、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和MicrosoftText等驱动程序.在缺省情况下,只会安装SQL Server、 Access、FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行安装程序并选择所需的驱动程序。
【OLE DB 】是用于访问数据的重要的系统级编程接口,它是 ADO 的基础技术,同时还是ADO.NET 的数据源.
ODBC 和OLE DB的关系
ODBC标准的对象是基于SQL 的数据源(SQL-Based Data Source),而OLE DB的对象则是范围更为广泛的任何数据存储。从这个意义上说,符合ODBC 标准的数据源是符合OLE DB 标准的数据存储的子集。符合ODBC标准的数据源要符合OLE DB 标准,还必须提供相应的OLE DB 服务程序(Service Provider),就像SQL Server 要符合ODBC标准,必须提供SQL Server ODBC 驱动程序一样。现在,微软自己已经为所有的ODBC 数据源提供了一个统一的OLE DB 服务程序,叫做ODBCOLE DB Provider。实际上,ODBC Provider 的作用,是替换ODBC Driver Manager,作为应用程序与ODBC驱动程序之间的桥梁,理论上不会增加任何开销。
【 ADO】 是基于OLEDB的访问接口,它是面向对象的OLE DB技术,继承了OLE DB的优点。属于数据库访问的高层接口
OLEDB和ODBC都是底层系统,都可直接对数据库进行访问,区别在于OLEDB既可以访问关系型数据库,也可访问非关系型数据库,而ODBC只能访问关系型数据库。虽然对不同数据库的操作方法不一样,但统一了通向不同的数据源的底层应用程序接口。
+ ADO是对象模型,也就是一组对象的集合,这里一共两类其中对象。
独立型对象:
connection:连接数据库
command: 用于查询
recordset 用于记录
依赖性对象
field 记录字段信息 依赖 recordset
parameter用参数查询提供数据 依赖 command
property 用于访问特定对象主要信息 依赖 独立型对象
error 错误处理 依赖 connection
下面是通过Connection对象创建SQL Server和ODBC数据源的连接.
首选定义连接对象Set objCnName = New ADODB.Connection
1.使用jet连接Access数据库
objCnName.ConnectionString= "provider=microsoft.jet.oledb.3.51;" & "dataasource=" & App.Path & "\*.Mdb"
objCnName.Open"mySQLODBC", "sa", "" '这里的mySQLODBC 是配置ODBC数据源是的文件名
2.打开SQL Server数据源连接
objCnName.ConnectionString= "Provider=SQLOLEDV;database=myvbdatavase;" &"server=(local);integrated security=sspi"
objCnName.Open
3.使用DSN标记打开ODBC数据源连接
objCnName.ConnectionString= "DSN=mySQLODBC;UID=sa;PWD=;"
objCnName.Open
4.使用DSN标记打开ODBC只不过访问别人机子上的数据库.
objCnName.ConnectString= "Provider=SQLOLEDB;Data Source=192.168.24.176;InitialCataLog=Student;UID=sa;PWD=123"
objCnName.Open ConnectionString
5.使用DSN和OLEDB 标记打开连接
objCnName.ConnectionString = "datasource=mySQLODBC;user id =sa ;password=;"
objCnName.Open
objName.open方法,打开数据源连接
objName.Close 方法,关闭数据源连接
Set objName = nothing 释放数据
冰冻三尺非一日之寒,巨大的进步在于点点滴滴的积累.