ODBC开放数据库互连

1 ODBC概述


    ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

    一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问;其驱动程序在安装该数据库时已经安装在操作系统上。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库;对开发者来说,不论哪种数据库,SQL Server或者Oracle,只要这种数据库提供了ODBC 驱动程序,就可以使用ODBC定义的API函数进行访问。


2 ODBC组成


    一个完整的ODBC由下列几个部件组成:

(1)应用程序(Application)

(2)ODBC管理器(Administrator):该程序位于控制面板(Control Panel)的管理工具内(数据源ODBC),其主要任务是管理安装的ODBC驱动程序和管理数据源。 包括DSN和驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

(3)ODBC API

(4)ODBC 驱动程序:是一些DLL,提供了ODBC和数据库之间的接口。 数据源。

(5)数据源:包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

 

3 使用ODBC


    应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。 在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

    在访问ODBC数据源时需要ODBC驱动程序的支持。安装操作系统时可以安装SQL Server、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和Microsoft Text等驱动程序.在缺省情况下,只会安装SQL Server、 Access、 FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要运行对应数据库的安装程序并选择所需的驱动程序。

实例1 :

以microsoft access为例,如果在c:/myfile/文件夹里创建了一个名为myexample.mdb的数据库文件,其注册步骤如下:

(1) 在“控制面板->管理工具”里找到“ODBC数据源”图标,打开数据源管理器的交互界面;

(2) 创建的数据库文件是供本机上的用户使用的,所以这里选择“用户 dsn”;

(3)然后按下“添加”按钮,在弹出的数据源管理器对话框里,为自己所要创建的数据源选择一个驱动程序,本文的数据库文件是用microsoft access创建的,所以要选择“microsoft access driver (*.mdb)”;

(4)按“完成”按钮后,进入一个标题为“odbc microsoft access 安装”的界面,在其中设置“数据源名”为“mydatasource”,选取数据库文件 ,如“c:/myfile/myexample.mdb”,然后确定即可。

这样我们就完成了一个简单的odbc数据源的注册。当然,在以上的步骤中,用户可以根据自己的不同需要,设置不同的选项。


DSN(Data Source Name)

 


    顾名思义,数据的来源。在数据源中存储了所有建立数据库连接的信息。就象通过指定文件名你可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。

  数据源标准属性包括:  

1、databaseName String 数据库名称,即数据库的SID。  

2、dataSourceName String 数据源接口实现类的名称。  

3、description String 对数据源的描述。  

4、networkProtocol String 和服务器通讯使用的网络协议名。  

5、password String 用户登录密码。  

6、portNumber 数据库服务器使用的端口。  

7、serverName String 数据库服务器名称。

    8、user String 用户登录名。

这些属性在“ODBC数据源管理器”中的“配置”中进行设置。

 

  如果数据是水,数据库就是水库,数据源就是连接水库的管道,终端用户看到的数据集是管道里流出来的水。

    数据源名称(data source name,DSN)是包含了有关某个特定数据库信息的数据结构,这个信息是开放式数据库连接驱动能够连接到数据库上必需的信息。DSN存储在注册表或作为一个单独的文本文件,DSN里面包含的信息有名称、目录和数据库驱动器,以及用户ID和密码(根据DSN的类型)。开发人员为每个数据库创建一个独立的DSN。为了连接到某个数据库,开发人员需要在程序中指定DSN。相反,没有DSN的连接则需要在程序中指定所有必要的信息。

    “ODBC数据源管理器”提供了三种DSN,分别为用户DSN、系统DSN和文件DSN。

1. 用户DSN会把相应的配置信息保存在Windows的注册表中,但是只允许创建该DSN的登录用户使用。不能从网络上访问该数据源。

2. 系统DSN同样将有关的配置信息保存在系统注册表中,但是与用户DSN不同的是系统DSN允许所有登录服务器的用户使用。

3. 文件DSN把具体的配置信息保存在硬盘上的某个具体文件中。文件DSN允许所有登录服务器的用户使用,而且即使在没有任何用户登录的情况下,也可以提供对数据库DSN的访问支持。此外,因为文件DSN被保存在硬盘文件里,所以可以方便地复制到其它机器中(文件可以在网络范围内共享)。这样,用户可以不对系统注册表进行任何改动就可直接使用在其它机器上创建的DSN。

    用户DSN和系统DSN的区别在于,用户DSN保存在注册表的HKEY_CURRENT_USER下,而系统DSN保存在HKEY _LOCAL_MACHINE下。


下面是WinXP中自带的ODBC帮助说明:
用户数据源:这些数据源对计算机来说是本地的,并且只能被当前用户访问。
系统数据源:这些数据源对于计算机来说是本地的,但并不是用户专用的;任何具有权限的用户都可以访问系统 DSN。
文件数据源:它们可以在所有安装了相同驱动程序的用户中被共享。这些数据源不必是用户专用的或对计算机来说是本地的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值