软装搭配服务 | 咨询热线: 159 2048 2283

/ 专业 / 创新 / 共羸 /

幻灯4
幻灯3
幻灯2
幻灯1
365bet体育在线_365bet官网
其它参考

它本身并不执行数据处理操作而用于远程操作的

发布于:2019-08-13 04:57来源:admin1 点击:

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

  驱动管理器本身是MSWindows中一个动态连接链接库文件(ODBC.DLL)。应用程序透过驱动管理器去加载并连接数据源的驱动程序(driver)并连接数据源。驱动管理器主要工作如下:

  驱动程序也是一个动态连接链接库文件,当应用程序呼叫ODBC函数,SQLConnect或SQLDriverConnect时,驱动管理器就会加载相对的驱动程序与应用程序呼应。驱动程序主要是执行ODBC之相对函数,并与对应的数据源(DataSource)做沟通。驱动程序之工作如下:

  应用系统程序通过标准API来连接数据源,因此开发过程中不需指定特定的数据库系统,所以数据库系统的开放性从此被建立。笔者认为在计算机系统进入开放时代之时,我们应可体会到标准的建立与系统的发展是同样的重要。而信息系统架构在数据库的必要性也随着信息化社会的蓬勃发展而更显重要,因此在ODBC标准日益成熟的同时,我们也同时可以感受到数据库系统在开放架构下,更需扮演强而有力的角色。

  以上所列之ODBCAPI函数,我们发现全都以SQL为开头。除以上述分类外,各个函数在其必要性或复杂度上,更被规定在不同的几个层级中ODBC函数的层级为核心层(Corelevel),第一层(Level1),和第二层(Level2)。我们再来看一个很基本的应用程序步骤是如何呢?下图告诉我们这个答案。

  回顾ODBC的架构及其执行过程,ODBC造就了应用程序独立性(ApplicationIndependency)的特性,使应用程序不需在乎数据源是何种数据库系统或者纯粹是个资料或文本文件,只要相对驱动程序能完成衔接的功能,则应用程序即可达到高度的独立性。

  ODBC现在看来是一个比较古老的东西,在1996年左右就比较定型了,其最新的版本是3.8(Win7自带;Win8上有更新但仍叫3.8),MICROSOFT也不打算对它做什么大的更新,更多的目光应该被放到OLEDB、ATAPROVIDER身上了。然而,正因为它是一个比较成熟和古老的规范,ODBC在大多数DBMS上都可以使用,可以说一个像样的DBMS都应该支持ODBC3.0或以上的版本。

  如果你打算学习如何开发一个ODBCDRIVER,最好的参考资料还是MSDN。如果你不打算采用ODBCAPI做开发,学习和了解ODBC也可以增加对DBMS的了解,也能更好地理解其他的数据库访问接口和技术。

  一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

  开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是我们要在本章后面加以讨论的ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或AccessBasic以得到MDB文件中的数据时,无需懂得Xbase程序设计语言。事实上,VisualC++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。

  你会发现,ODBC工作起来和Windows一样,它用包含在DLL内的驱动程序完成任务。其实,ODBC提供一套两个驱动程序:一个是数据库管理器的语言,另一个为程序设计语言提供公用接口。允许VisualC++用标准的函数调用经公用接口访问数据库的内容,是这两个驱动程序的汇合点。当然,还有其它和ODBC有关的实用程序类型的DLL。例如,一个这样的DLL允许你管理ODBC数据源。ODBC的实际管理接口出现在SYSTEM文件夹中的某个CPL(控制面板)文件中寻找我们在后面要谈到这方面的问题。ODBC的确能履行承诺,提供对数据库内容的访问,并且没有太多的问题。它没有提供数据库管理器和C之间尽可能最好的数据转换,这种情况是有的,但它多半能像广告所说的那样去工作。唯一影响ODBC前程的是,它的速度极低至少较早版本的产品是这样。ODBC最初面世时,一些开发者曾说,因为速度问题,ODBC永远也不会在数据库领域产生太大的影响。然而,以Microsoft的市场影响力,ODBC毫无疑问是成功了。今天,只要有两种ODBC驱动程序的一种,那么几乎每一个数据库管理器的表现都会很卓越。

  在可以用ODBC做任何事之前,必须有一个数据库模型在脑子里。在一个像Access这样的应用程序中创建数据库框架通常会更容易一些,因为Access可以非常轻松地提供完成任务所需的各种功能。但是,如果你安装了所需的ODBC驱动程序,那就可以在C++中创建程序框架。一设计了数据库,就要为其创建ODBC数据源,我们会在本节中看到这一点。下面的过程并没有严格地说明活动的经过,只是说明了一种配置数据源的技术。

  注释我会在第5章中说明如何创建一个Access数据库。现在,我们只是看一看,为了访问那个数据库,我们下一步要做些什么。

  单击Add按钮。会看到CreateNewDataSource(创建新的数据源)对话框,如下图所示。

  技巧检查ODBCDataSourceAdministrator(ODBC数据源管理员)对话框的About选项卡,可以确定你正在使用的ODBC驱动程序的最新版本。这个选项卡包含了各种ODBCDLL的版本号、生产厂商的名称以及出现在SYSTEM文件夹中的文件名。大多数情况下,通过查看版本号可以验证ODBC驱动程序是否是最新的版本。

  3.选择一个数据源。对本练习来说,我选择了Access数据源。单击Finish(完成),会看到某种类型的配置对话框,如下面的ODBCMicrosoftAccess97Setup(设置)对话框所示。

  注释:如果你选择的数据源和我在本实例中选择的不同,那么所需的配置步骤也和这里说明的不同枣每个ODBC驱动程序都要求不同类型的配置。

  4.在DataSourceName(数据源名)域内输入数据源名称。一定要选择意义明确但又不过于冗长的名称。我选择FoodDatabase(食品数据库),因为我最终要创建一个与食品库存有关的数据库的链接。

  5.在Description(描述)域内输入一段说明性文字。可以让这个项比上一个项稍长一些,因为它描述数据库的用途。另一方面,也不要写入像《战争与和平》那样大的小说。对本练习,我输入了:Thisdatabasecontainsinventoryinformationforafoodstore(本数据库包含食品存储的库存信息)。

  6.单击Select(选择)按钮。你会看到一个FileOpen-type(文件ODBC打开类型)对话框,可以在那里选择一个现有的数据库。ODBC驱动程序会自动选择正确的文件扩展名。

  技巧并不是一定要提前设计数据库。请注意,AccessODBC驱动程序还包括一个创建新数据库的按钮。很多ODBC驱动程序都提供了这种功能,但并不是全都这样。单击这个按钮会启动数据库管理器应用程序,并允许你设计数据库。注意有一点很有意思,AccessODBC驱动程序还会允许你使用这个对话框压缩或修补数据库。

  7.选择系统数据库选项。在大多数情况下要选择None(无),除非你为应用程序特别创建了一个系统数据库。如果确实添加了系统数据库,它会出现在ODBCMicrosoftAccess97Setup(设置)对话框的SystemDSN(系统DSN)选项卡上。

  8.单击Advanced(高级)按钮,会看到SetAdvancedOptions(设置高级选项)对话框,如下图所示。无需对很多项做修改。但是,要把客户名添加到LoginName(注册名)域中,把客户口令添加到Password(口令)域中。这允许客户在访问你的数据库时,根本不用了解访问的细节--甚至不用了解被记录的客户名。技巧为最优化潜在的区域,可以浏览一下ODBC驱动程序提供的一系列高级选项。例如,AccessODBC允许你更改DBMS所用的线通常提供了不错的性能,但是你会发现,复杂程序中线程多一些的话,可以提高前台任务的速度。由于Windows使用了一些处理器循环对线程实施管理,所以使用了过多的线程又会降低应用程序的速度。

  10.再次单击OK关闭ODBCMicrosoftAccess97Setup(设置)对话框。应该看到,新的设置项已经添加到ODBCDataSourceAdministrator(ODBC数据源管理员)对话框中。如果今后要为数据库更改这些设置,只要简单地加亮它并单击Configure(配置)。删除数据库配置也很容易,只要加亮DSN并单击Remove(删除)即可。创建系统DSN和制作用户DSN差不多。两者间一个显著的差别是,使用它们的目的不同。系统DSN告诉应用程序如何与数据库相连,在一些情况下如何与之交互作用。系统DSN不包含数据库所需的任何数据--它包含连接标准,其中可以包括从用户列表到重要文件位置的一切信息。

  ODBC使用层次的方法来管理数据库,在数据库通信结构的每一层,对可能出现依赖数据库产品自身特性的地方,ODBC都引入一个公共接口以解决潜在的不一致性,从而很好地解决了基于数据库系统应用程序的相对独立性,这也是ODBC一经推出就获得巨大成功的重要原因之一。

  单束式驱动程序介于应用程序和数据库之间,像中介驱动程序一样数据提供一个统一的数据访问方式。当用户进行数据库操作时,应用程序传递一个ODBC函数调用给ODBC驱动程序管理器,由ODBCAPI判断该调用是由它直接处理并将结果返回还是送交驱动程序执行并将结果返回。由上可见,单束式驱动程序本身是一个数据库引擎,由它直接可完成对数据库的操作,尽管该数据库可能位于网络的任何地方。

  多束式驱动程序负责在数据库引擎和客户应用程序之间传送命令和数据,它本身并不执行数据处理操作而用于远程操作的网络通信协议的一个界面。

  前端应用程序提出对数据库处理的请求,该请求转给ODBC驱动程序管理器,驱动程序管理器依据请求的情况,就地完成或传给多束驱动程序,多束式驱动程序将请求翻译为特定厂家的数据库通信接口(如Oracle的SQLNet)所能理解的形式并交于接口去处理,接口把请求经网络传送给服务器上的数据引擎,服务器处理完后把结果发回给数据库通信接口,数据库接口将结果传给多束式ODBC驱动程序,再由驱动程序将结果传给应用程序。

  你可能已经注意到了,上一节中的实例有问题。如果想单独配置网络上的每一台机器,它会工作得很好,但这可能不是一个好主意。还有一种存储创建数据源所需信息的方式:文件DSN。这正是我们要在本节中讨论的。下面的过程说明了设置文件DSN的一般方法。

  1.双击ControlPanel(控制面板)中的32位ODBC小程序,会看到ODBCDataSourceAdministrator(ODBC数据源管理员)对话框。选择FileDSN(文件DSN)选项卡,会看到如下图所示的对话框。要做的第一件事是,选择存储DSN信息的地方。2.单击LookIn(观察)下拉列表框,会看到一系列当前机器的目录和驱动器。可以为DSN使用任何存储位置。我通常在网络上选择数据库存储目录。使用UNC(通用命名标准)意味着,每个人都会用相同的路径来访问DSN文件。

  技巧UpOneLevel(上一和在Explorer中是一样的。可以用该按钮返回到上一级目录。最后,你会在MyComputer(我的电脑)处结束,看到机器上所有驱动器的清单。

  3.单击Add(添加),会看到CreateNewDataSource(创建新的数据源)对线.在列表中选择一个ODBC驱动程序,然后单击Next(下一个)。对本示例来说,我再次选择Access。你会看到CreateNewDataSource(创建新的数据源)对话框的下一页显示出来。在这里选择数据源的名称和存储位置。单击Browse(浏览)会看到FileOpen-type(文件打开类型)对话框,在这里选择存储位置。输入一个文件名,ODBC向导自动添加DSN作为扩展名。在本示例中,我选择SAMPLE.DSN作为DSN文件的名称。5.单击Next(下一个)会看到一个摘要对话框,如下图所示。它说明正准备创建的DSN的参数。6.单击Finish(完成)。这时,会看到ODBCMicrosoftAccess97Setup(设置)对话框的修改版。不能像我们在上一节所做的那样,在DataSourceName(数据源名)或Description(描述)字段中添加信息了,不过,其它的都和以前一样。7.一定要单击Select(选择)按钮输入数据库的名称,然后选择想要使用的数据库(如果想创建一个新数据库,也可以单击Create(创建))。365bet体育平台

  8.完成配置过程时单击OK,你会在ODBCDataSourceAdministrator(ODBC数据源管理员)对话框中看到一个新的DSN文件项。和我们创建的前一个DSN不同,这个DSN实际上创建可以用文本编辑器来查看和编辑的文件。图4.1显示了我的文件的外观。请注意,它符合标准的INI文件格式。你可以在顶端看到【ODBC】标题。下面是我选择的全部设置。这个文件允许我从VisualC++选择数据源,而机器间的传输也是非常容易的。我甚至能在安装过程中按要求更改位置--在你不知道用户会有什么样的设置时,这一点确实很不错。

  开放数据库互联(ODBC)为数据库应用程序访问异构型数据库提供了统一的数据存取API,应用程序不必重新编译、连接就可以与不同的DBMS相联。目前支持ODBC的有Oracle,Access,X-Base等10多种流行的DBMS。本书介绍了ODBC的基本原理及SQL语言,并从两个角度介绍ODBC技术:一是从ODBC应用程序设计者的角度,将应用和开发中通常要用到的编程环节先总结成框架形式,然后分步骤讲解;另一是从ODBC驱动程序开发人员的角度,介绍如何开发ODBC驱动程序。本书还介绍了有关ODBC软件安装及数据源配置的方法。本书适用于广大数据库应用人员和开发人员,也可供大、中专院校师生参考。

  开始记录事务时,只要双击控制面板(ControlPanel)中的32位ODBC小程序,打开ODBCDataSourceAdministrator(ODBC数据源管理员)对话框。选择Tracing(跟踪)选项卡,你会看到如下图所示的对话框(请注意,该对线版本略有不同)。如你所见,有三个单选按钮确定何时跟踪ODBC调用。缺省设置是DontTrace(不跟踪)。如果打算调试单个应用程序,应该选择AlltheTime(全部时间)。One-TimeOnly(只一次)在下一次连接期间跟踪ODBC调用枣只要连接一拆除,跟踪就关闭。当用户带着特定的问题调用时,这是一个不错的选择。可以监视一次会话期间的连接,然后用该信息帮助创建排除错误的计划。

  跟踪不会自动开始。还要单击对话框右侧的StartTracingNow(现在开始跟踪)。只要跟踪一开始,按钮标题就变成StopTracingNow(现在停止跟踪)。再次单击按钮关闭跟踪过程。

  唯一要担心的其它设置是LogFilePath(记录文件路径)。ODBC通常在根目录下的SQL.LOG文件中放入事务信息。但是,也可以将该信息放在网络驱动器上,或者用户看不到的地方。在调试过程中,缺省位置通常就比较适宜。

  注释除非你想创建自己的日志记录DLL,否则不要更改CustomTraceDLL(自定义跟踪DLL)域内的设置。365bet体育平台在这里列出的DLL枣ODBCTRAC.DLL枣负责维持事务记录。

------分隔线----------------------------
回到顶部