用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧计算机应用

Delphi 5 数据库应用中ODBC数据源的自动管理

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 11:56:28
【本文由PB创新网为您整理】

摘要:本文分析了ODBC数据源设置的原理以及ODBC数据源和Delphi数据库别名的关系。并在此基础上,介绍了在Delphi5数据库应用程序安装、运行中,如何编程实现ODBC数据源和Delphi数据库别名的设置。
关键字:Delphi、数据库、ODBC

一、前言
Delphi的特色之一就是方便而强大的开发数据库的能力,只要轻击几下鼠标,填写极少的几行代码,就能快速地开发出很有风格的数据库应用程序。编写一个数据应用可以很简单,但要在别人的计算机上运行自己的应用却要费一些周折。
首先,如果对方的计算机上还没有安装过Inprise公司的BDE数据库引擎的话,那么就必须把BDE和应用程序一起安装到对方的计算机中。其次,应用程序中用到的数据库别名(Alias),特别是使用了ODBC数据源连接的数据库别名必须和BDE一起设置。最后,如果应用程序使用的数据库,其存放路径并不是固定的,那么必须根据实际情况进行ODBC和Alias的调整。这些,当然可以在应用程序安装后,利用控制面板中ODBC数据源管理和BDE随带的BDE Administrator通过手工设置。但如此一来,一方面会使应用程序大打折扣,另一方面不便于普通用户自己的安装和今后工作路径的改动。
Delphi一起发布的Install Shield Express可以大大简化安装程序的制作,帮助我们完成许多工作。本文将要介绍的,便是如何通过Install Shield和应用程序配合,完成安装和运行时的ODBC数据源的自动设置。

二、原理
1、ODBC数据源
ODBC(Open DataBase Conectivity)是微软公司制定的标准编程接口,只要有相应的ODBC驱动程序,就可以通过ODBC连结操作各种不同的数据库。通常通过控制面板中的ODBC Data Source来配置ODBC的数据源。所谓ODBC数据源就是命名的一组信息,包括需要连结的数据库所在位置(可以是磁盘目录/文件,也可以是网络服务器)、对应的ODBC驱动程序以及访问数据库所需的其他相关信息,用户可以通过数据源的名称(DSNs,Data Source Names)来指定所需的ODBC连接。
DSNs按照其保存方式和作用范围分为三种:用户DSN、系统DSN和文件DSN。每个文件DSN保存在单独的一个文件中,文件可以在网络范围内共享;用户DSN保存在注册表中,只对当前用户可见;系统DSN页保存在注册表中,但对系统中的所有用户可见。用户DSN和系统DSN的区别在于,用户DSN保存在注册表的HKEY_CURRENT_USER下,而系统DSN保存在HKEY_LOCAL_MACHINE下。
下面,以系统DSN为例说明如何通过修改注册表直接设置ODBC数据源。假定我们要连接的数据库是Access97的c:/test/auto.mdb(注意:用较新的ADO连接Access数据库效率更高,这里只是作为一个例子),数据源的名称为CenterAuto,那么可以分为两个步骤:
(1)注册DSN本身的信息:
•      在HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI下添加主键CenterAuto。主键的名称CenterAuto就是数据源的名称。
•      向CenterAuto添加键值,关键的几项是

键值名      键值类型      键值      含义
Driver      字符串(String)      C:/WINDOWS/SYSTEM/ODBCJT32.DLL      ODBC驱动程序DLL
DBQ      字符串(string)      c:/test/auto.mdb      连接的数据库
DriverID      双字(Dword)      19H(十六进制数)     
FIL      字符串(string)      MS Access;     
•      在CenterAuto下添加主键Engines
•      在Engines下添加主键Jet
•      在Jet下添加键值,要是一些配置信息,例如
ImplicitCommitSync、MaxBufferSize、PageTimeout、Threads。
关于不同的ODBC数据源的具体设置,可以查阅有关书籍,不过最简单的方法是在控制面板中设置相应的数据源,然后用Regedit(98中)或Regedit32(NT中)察看一下注册表。
(2)登记数据源:在HKEY_LOCAL_MACHINE/Software/ODBC/ODBC.INI/ODBC Data Sources下添加键值名CenterAuto,类型为字符串,键值为“Microsoft Access Driver (*.mdb)”。其中键值名指出了DSN,必须和前面的对应起来;键值则指出了ODBC驱动程序的名称,必须是已安装了的。
2、BDE别名
Delphi 5.0通过BDE实现数据库的操作。在连结数据库时,可以直接指出数据库的存放路径,也可以通过指定别名实现,但前者只能实现对文件型数据库的连接,如果要连接服务器上的数据库或ODBC数据源,则必须通过别名。
BDE的别名可以用随带的Database Desktop中Alias Manager进行管理,也可以在控制面板中用BDE Administrator管理,应用程序运行过程中还可以通过Session不可见控件实现动态管理。不过,对于ODBC数据源,一旦建立了用户DSN或系统DSN,那么BDE就会自动建立一个别名,别名的名称和DSN的名称是一样的。同样的,如果你删除了DSN,那么BDE就会删除相应的别名。这就是说,在Delphi 5.0中操作ODBC数据源,只需要关心DSN的设置就可以了。
3、Install Shield
Delphi 5.0附带的Install Shield不带能够完成BDE的安装工作,而且完全支持安装程序对注册表的修改,只要简单地在Make Registry Changes选项下,输入需要添加的注册表项目,就可以实现在应用程序安装时修改注册表的目的。结合前面介绍的ODBC数据源的设置原理,利用这个功能,就可以方便地实现在安装时进行DSN的初始设置。
4、De

[1] [2]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:20,671.88000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号