本文从ODBC的定义入手来讲解如何配置你的ODBC数据源。
ODBC定义
一组数据的位置,可以使用 ODBC 驱动程序访问该位置。也是一种存储的定义,包含 ODBC 应用程序连接到数据源所需的全部连接信息。
开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是我们要在本章后面加以讨论的ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或Access Basic以得到MDB文件中的数据时,无需懂得Xbase程序设计语言。事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。
你会发现,ODBC工作起来和Windows一样棗它用包含在DLL内的驱动程序完成任务。其实,ODBC提供一套两个驱动程序:一个是数据库管理器的语言,另一个为程序设计语言提供公用接口。允许Visual C++用标准的函数调用经公用接口访问数据库的内容,是这两个驱动程序的汇合点。当然,还有其它和ODBC有关的实用程序类型的DLL。例如,一个这样的DLL允许你管理ODBC数据源。ODBC的实际管理接口出现在SYSTEM文件夹中的某个CPL(控制面板)文件中棗我们在后面要谈到这方面的问题。
ODBC的确能履行承诺,提供对数据库内容的访问,并且没有太多的问题。它没有提供数据库管理器和C之间尽可能最好的数据转换,这种情况是有的,但它多半能像广告所说的那样去工作。唯一影响ODBC前程的是,它的速度极低棗至少较早版本的产品是这样。ODBC最初面世时,一些开发者曾说,因为速度问题,ODBC永远也不会在数据库领域产生太大的影响。然而,以Microsoft的市场影响力,ODBC毫无疑问是成功了。今天,只要有两种ODBC驱动程序的一种,那么几乎每一个数据库管理器的表现都会很卓越。
使用ODBC
在可以用ODBC做任何事之前,必须有一个数据库棗至少在脑子里。在一个像Access这样的应用程序中创建数据库框架通常会更容易一些,因为Access可以非常轻松地提供完成任务所需的各种功能。但是,如果你至少安装了所需的ODBC驱动程序,那就可以在C++中创建程序框架。一设计了数据库,就要为其创建ODBC数据源,我们会在本节中看到这一点。下面的过程并没有严格地说明活动的经过,只是说明了一种配置数据源的技术。
1. 双击Control Panel(控制面板)中的32位ODBC小程序(如果当前系统上未安装16位驱动程序,那么一些版本的Windows使用简单的ODBC小程序)。你会看到ODBC Data Source Administrator(ODBC数据源管理员)对话框,如下图所示。请注意,该对话框中当前显示的选项卡是User DSN(用户数据源名)选项卡。对系统级数据库来说,使用System DSN(系统数据源名)选项卡;对文件级数据源(从严格意义上说,它不是数据库),使用File DSN(文件数据源名)选项卡。你还会看到一个数据库的缺省选项。如果想从Visual C++内部创建数据库,就会用到这个选项。
警告 对本地数据库来说,通常要在User DSN(用户DSN)选项卡上创建一个项;对远程数据库,则在System DSN(系统DSN)选项卡上创建。任何情况下,都不能在User DSN(用户DSN)和System DSN(系统DSN)选项卡上创建同名的项。通常会出现的问题是,你试图访问远程数据库,但从Web服务器获得了非常奇怪和矛盾的错误消息。事实上,如果在远程数据库访问期间得到了奇怪的错误消息,那么32位ODBC小程序是首先应该查看的地方之一。
2. 单击Add按钮。会看到Create New Data Source(创建新的数据源)对话框,如下图所示。
技巧 检查ODBC Data Source Administrator(ODBC数据源管理员)对话框的About选项卡,可以确定你正在使用的ODBC驱动程序的最新版本。这个选项卡包含了各种ODBC DLL的版本号、生产厂商的名称以及出现在SYSTEM文件夹中的文件名。大多数情况下,通过查看版本号可以验证ODBC驱动程序是否是最新的版本。
3. 选择一个数据源。对本练习来说,我选择了Access数据源。单击Finish(完成),会看到某种类型的配置对话框,如下面的ODBC Microsoft Access 97Setup(设置)对话框所示。
注释 如果你选择的数据源和我在本实例中选择的不同,那么所需的配置步骤也和这里说明的不同棗每个ODBC驱动程序都要求不同类型的配置。
4. 在Data Source Name(数据源名)域内输入数据源名称。一定要选择意义明确但又不过于冗长的名称。我选择Food Database(食品数据库),因为我最终要创建一个与食品库存有关的数据库的链接。
5. 在Description(描述)域内输入一段说明性文字。可以让这个项比上一个项稍长一些,因为它描述数据库的用途。另一方面,也不要写入像《战争与和平》那样大的小说。对本练习,我输入了:This database contains inventoryinformation for a food store(本数据库包含食品存储的库存信息)。
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:MySQL ODBC进行MySQL和SQL Server转换
下一篇:教你简单七招 轻松实现Web数据库的安全