版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Delphi 5 数据库应用中ODBC数据源的自动管理摘要:本文分析了ODBC数据源设置的原理以及ODBC数据源和Delphi数据库别名的关系。并在此基础上,介绍了在Delphi5数据库应用程序安装、运行中,如何编程实现ODBC数据源和Delphi数据库别名的设置。关键字:Delphi、数据库、ODBC一、前言Delphi的特色之一就是方便而强大的开发数据库的能力,只要轻击几下鼠标,填写极少的几行代码,就能快速地开发出很有风格的数据库应用程序。编写一个数据应用可以很简单,但要在别人的计算机上运行自己的应用却要费一些周折。首先,如果对方的计算机上还没有安装过Inprise公司的BDE数据库引擎的
2、话,那么就必须把BDE和应用程序一起安装到对方的计算机中。其次,应用程序中用到的数据库别名(Alias),特别是使用了ODBC数据源连接的数据库别名必须和BDE一起设置。最后,如果应用程序使用的数据库,其存放路径并不是固定的,那么必须根据实际情况进行ODBC和Alias的调整。这些,当然可以在应用程序安装后,利用控制面板中ODBC数据源管理和BDE随带的BDE Administrator通过手工设置。但如此一来,一方面会使应用程序大打折扣,另一方面不便于普通用户自己的安装和今后工作路径的改动。和Delphi一起发布的Install Shield Express可以大大简化安装程序的制作,帮助我
3、们完成许多工作。本文将要介绍的,便是如何通过Install Shield和应用程序配合,完成安装和运行时的ODBC数据源的自动设置。二、原理1、ODBC数据源ODBC(Open DataBase Conectivity)是微软公司制定的标准编程接口,只要有相应的ODBC驱动程序,就可以通过ODBC连结操作各种不同的数据库。通常通过控制面板中的ODBC Data Source来配置ODBC的数据源。所谓ODBC数据源就是命名的一组信息,包括需要连结的数据库所在位置(可以是磁盘目录/文件,也可以是网络服务器)、对应的ODBC驱动程序以及访问数据库所需的其他相关信息,用户可以通过数据源的名称(DSN
4、s,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:testauto.mdb(
5、注意:用较新的ADO连接Access数据库效率更高,这里只是作为一个例子),数据源的名称为CenterAuto,那么可以分为两个步骤:(1)注册DSN本身的信息:• 在HKEY_LOCAL_MACHINESoftwareODBCODBC.INI下添加主键CenterAuto。主键的名称CenterAuto就是数据源的名称。• 向CenterAuto添加键值,关键的几项是键值名 键值类型 键值 含义Driver 字符串(String) C:WINDOWSSYSTEMODBCJT32.DLL ODBC驱动程序DLLDBQ 字符串(string) c:test
6、auto.mdb 连接的数据库DriverID 双字(Dword) 19H(十六进制数) FIL 字符串(string) MS Access; • 在CenterAuto下添加主键Engines• 在Engines下添加主键Jet• 在Jet下添加键值,要是一些配置信息,例如ImplicitCommitSync、MaxBufferSize、PageTimeout、Threads。关于不同的ODBC数据源的具体设置,可以查阅有关书籍,不过最简单的方法是在控制面板中设置相应的数据源,然后用Regedit(98中)或Regedit32(NT
7、中)察看一下注册表。(2)登记数据源:在HKEY_LOCAL_MACHINESoftwareODBCODBC.INIODBC Data Sources下添加键值名CenterAuto,类型为字符串,键值为“Microsoft Access Driver (*.mdb)”。其中键值名指出了DSN,必须和前面的对应起来;键值则指出了ODBC驱动程序的名称,必须是已安装了的。2、BDE别名Delphi 5.0通过BDE实现数据库的操作。在连结数据库时,可以直接指出数据库的存放路径,也可以通过指定别名实现,但前者只能实现对文件型数据库的连接,如果要连接服务器上的数据库或ODBC数据源,则必须通过别名。
8、BDE的别名可以用随带的Database Desktop中Alias Manager进行管理,也可以在控制面板中用BDE Administrator管理,应用程序运行过程中还可以通过Session不可见控件实现动态管理。不过,对于ODBC数据源,一旦建立了用户DSN或系统DSN,那么BDE就会自动建立一个别名,别名的名称和DSN的名称是一样的。同样的,如果你删除了DSN,那么BDE就会删除相应的别名。这就是说,在Delphi 5.0中操作ODBC数据源,只需要关心DSN的设置就可以了。3、Install ShieldDelphi 5.0附带的Install Shield不带能够完成BDE的安装
9、工作,而且完全支持安装程序对注册表的修改,只要简单地在Make Registry Changes选项下,输入需要添加的注册表项目,就可以实现在应用程序安装时修改注册表的目的。结合前面介绍的ODBC数据源的设置原理,利用这个功能,就可以方便地实现在安装时进行DSN的初始设置。4、Delphi 5.0的注册表控件Delphi的TRegistry提供了操作Windows注册表的界面,可以在程序中读写注册表中的数据。如果不使用InstallShield,通过TRegistry也可以完成DSN的初始设置。本文仅介绍利用TRegistry实现对DSN的修改,而不介绍DSN的完整设置,但根据上述原理和下面的
10、程序代码,要做到这一点不会有任何问题。三、程序代码仍然以CenterAuto数据源为例,假设应用程序中有一个“系统设置”选项,允许用户改变CenterAuto数据源连接的Auto.mdb的存放路径,范例程序如下:1、“系统设置”Form2、代码Option.pasunit Option;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Registry;type TOptionForm = class(TForm) lbPrompt: TLabel;
11、 edtAutoPath: TEdit; btnOK: TButton; btnCancel: TButton; OpenDialog: TOpenDialog; btnBrowse: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure btnBrowseClick(Sender: TObject); procedure btnOKClick(Sender: TObject); private Private declarations SystemRe
12、g:TRegistry; /TRegistry在Registry单元中定义 public Public declarations end;implementationprocedure TOptionForm.FormCreate(Sender: TObject);begin SystemReg:=TRegistry.Create; with SystemReg dobegin /TRegistry创建后,默认的RootKey是HKEY_CURRENT_USERRootKey:=HKEY_LOCAL_MACHINE;/打开CenterAuto主键OpenKey('SoftwareODB
13、CODBC.INICenterAuto',False)/读取原来的数据库(含路径)edtAutoPath.Text:=ReadString('DBQ') end;end;procedure TOptionForm.FormDestroy(Sender: TObject);begin with SystemReg dobegin /关闭打开的主键 CloseKey; /释放SystemReg Free; end;end;procedure TOptionForm.btnBrowseClick(Sender: TObject);beginif OpenDialog.Execute then /获取路径和文件名 edtAutoPath.Text:=OpenDialog.; end;procedure TOptionForm.btnOKClick(Sender: TObject);begin /设置新的数据库和路径 SystemReg.WriteString('DBQ',edtAutoPath.Text);end;end.3、使用系统设置Form在程序中,通过下列代码就可以实现ODBC数据源的动态设置了:with T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职(市场营销)市场定位策略试题及答案
- 2026年烹饪工艺(中式烹饪技巧)试题及答案
- 2025年中职(会计电算化)会计电算化阶段测试试题及答案
- 2025年高职植物保护管理应用(应用技术)试题及答案
- 初中数学专题07 用勾股定理构造图形解决问题(解析版)
- 养老院老人心理咨询师管理制度
- 养老院投诉处理与改进制度
- 养老院入住老人法律法规宣传教育制度
- 公共交通广告发布管理制度
- 2026年儿童误服药物电动洗胃急救处理流程练习题及答案
- (2025年)员工安全培训考试试题(含答案)
- 2025-2026学年北师大版八年级数学上册期末复习卷(含答案)
- 2026四川成都九联投资集团有限公司招聘12人笔试参考题库及答案解析
- 北京市东城区2025-2026学年高三上学期期末考试地理 有答案
- 2025年健康体检中心服务流程手册
- 2026年黑龙江林业职业技术学院高职单招职业适应性测试备考题库有答案解析
- 贵金属产业2026年发展趋势与市场价格波动分析
- 现代环境监测技术
- 2026福建能源石化集团校招面笔试题及答案
- 华东理工大学2026年公开招聘工作人员46名备考题库及参考答案详解
- 2025桐梓县国土空间规划城市年度体检报告成果稿
评论
0/150
提交评论