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

odbc数据源  时间:2021-02-27  阅读:()

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

目录

一、前言

二、原理

1、 ODBC数据源

1注册DSN本身的信息:

2

2、 BDE别名

3、 Itall Shield

4、 Delphi 5.0的注册表控件

三、程序代码

1、 “系统设置” Form

2、代码Option.pas

3、使用系统设置Form

四、小结

正文

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

关键字 Delphi、数据库、 ODBC

一、前言

Delphi的特色之一就是方便而强大的开发数据库的能力只要轻击几下鼠标填写极少的几行代码就能快速地开发出很有风格的数据库应用程序。编写一个数据应用可以很简单但要在别人的计算机上运行自己的应用却要费一些周折。

首先如果对方的计算机上还没有安装过I npr i se公司的BDE数据库引擎的话那么就必须把BDE和应用程序一起安装到对方的计算机

中。其次应用程序中用到的数据库别名Alias 特别是使用了ODBC数据源连接的数据库别名必须和BDE一起设置。最后如果应用程序使用的数据库其存放路径并不是固定的那么必须根据实际情况进行ODBC和Alias的调整。这些 当然可以在应用程序安装后利用控制面板中ODBC数据源管理和BDE随带的BDE Admini strator通过手工设置。但如此一来一方面会使应用程序大打折扣另一方面不便于普通用户自己的安装和今后工作路径的改动。

和Delphi一起发布的Itall Shield Express可以大大简化安装程序的制作帮助我们完成许多工作。本文将要介绍的便是如何通过Itall Shield和应用程序配合完成安装和运行时的ODBC数据源的自动设置。

二、原理

1、 ODBC数据源

ODBC Open DataBase Conectivity是微软公司制定的标准编程接口只要有相应的ODBC驱动程序就可以通过ODBC连结操作各种不同的数据库。通常通过控制面板中的ODBC Data Source来配置ODBC的数据源。所谓ODBC数据源就是命名的一组信息包括需要连结的数据库所在位置可以是磁盘目录/文件也可以是网络服务器 、对应的ODBC驱动程序以及访问数据库所需的其他相关信息用户可以通过数据源的名称(DS Data Source Names)来指定所需的ODBC连接。

DS按照其保存方式和作用范围分为三种用户DSN、系统DSN和文件DSN。每个文件DSN保存在单独的一个文件中文件可以在网络范围内共享用户DSN保存在注册表中只对当前用户可见系统DSN页保存在注册表中但对系统中的所有用户可见。用户DSN和系统DSN的区别在于用户D SN保存在注册表的HKEY_CURRENT_US ER下而系统DSN保存在HKEY_LOCAL_MACHINE下。

下面 以系统DSN为例说明如何通过修改注册表直接设置ODBC数据源。假定我们要连接的数据库是Acces s97的c:est\auto.mdb(注意用较新的ADO连接Acc ess数据库效率更高这里只是作为一个例子) 数据源的名称为CenterAuto那么可以分为两个步骤

1注册DSN本身的信息:

?在HKEY_LOCAL_MACH I NE\Sof tware\ODB C\ODB C. I NI下添加主键CenterAuto。主键的名称CenterAuto就是数据源的名称。

?向CenterAuto添加键值关键的几项是

键值名键值类型键值含义

Driver字符串(String) C:\WINDOWS\SYSTEM\ODBCJT32.DLL ODBC驱动程序DLL

DBQ字符串(string) c:est\auto.mdb连接的数据库

DriverID双字(Dword) 19H(十六进制数)

FIL字符串(string) MS Access;

?在CenterAuto下添加主键Engines

?在Engines下添加主键Jet

?在Jet下添加键值要是一些配置信息例如

Impl icitCommitSync、 MaxBuffeize、 PageTimeout、 Threads。

关于不同的ODBC数据源的具体设置可以查阅有关书籍不过最简单的方法是在控制面板中设置相应的数据源然后用Regedit 98中或Regedit32 NT中察看一下注册表。

2登记数据源在

HKEY_LOCAL_MACHINE\Sof tware\ODBC\ODBC. INI\ODBC Data Sources下添加键值名CenterAuto类型为字符串键值为“Microsoft AccessDriver (*.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就会删除相应的别名。这就是说在De lphi

5.0中操作ODBC数据源只需要关心DSN的设置就可以了。

3、 Itall Shield

Delphi 5.0附带的Itall Shield不带能够完成BDE的安装工作而且完全支持安装程序对注册表的修改只要简单地在Make RegistryChanges选项下输入需要添加的注册表项目就可以实现在应用程序安装时修改注册表的目的。结合前面介绍的ODBC数据源的设置原理利用这个功能就可以方便地实现在安装时进行DSN的初始设置。

4、 Delphi 5.0的注册表控件

Delphi的TRegistry提供了操作Windows注册表的界面可以在程序中读写注册表中的数据。如果不使用ItallShield通过TRegis

三、程序代码

仍然以CenterAuto数据源为例假设应用程序中有一个“系统设置”选项允许用户改变CenterAuto数据源连接的Auto.mdb的存放路径范例程序如下

1、 “系统设置” Form

2、代码Option.pasunit Option;interfaceuses

Windows Messages SysUtils Classes GraphicsControls Forms Dialogs StdCtrls Registry;type

TOpt ionForm= class(TForm)lbPrompt: TLabel ;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 declaratio }

SystemReg:TRegistry; TRegistry在Registry单元中定义publ ic

{ Public declaratio }end;impl ementationprocedure TOptionForm.FormCreate(Sender: TObject)begin

SystemReg:=TRegistry.Create;with SystemReg do

begin

TReg i stry创建后默认的RootKey是HKEY_CURRENT_USERRoot Key:=HKEY_LOCAL_MACHI NE;

打开CenterAuto主键

OpenKey('Software\ODBC\ODBC. INI\CenterAuto'  Fal se)读取原来的数据库含路径edtAutoPath.Text:=ReadString('DBQ'end;end;procedure TOptionForm.FormDestroy(Sender: TObject)beginwith SystemReg dobegin

关闭打开的主键

CloseKey;

Digital-VM暑期全场六折优惠,8个机房

Digital-VM商家目前也在凑热闹的发布六月份的活动,他们家的机房蛮多的有提供8个数据中心,包括日本、洛杉矶、新加坡等。这次六月份的促销活动全场VPS主机六折优惠。Digital-VM商家还是有一点点特点的,有提供1Gbps和10Gbps带宽的VPS主机,如果有需要大带宽的VPS主机可以看看。第一、商家优惠码优惠码:June40全场主机六折优惠,不过仅可以月付、季付。第二、商家VPS主机套餐1...

TTcloud:日本独立服务器促销活动,价格$70/月起,季付送10Mbps带宽

ttcloud怎么样?ttcloud是一家海外服务器厂商,运营服务器已经有10年时间,公司注册地址在香港地区,业务范围包括服务器托管,机柜托管,独立服务器等在内的多种服务。我们后台工单支持英文和中文服务。TTcloud最近推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。点击进入:ttcloud官方网站地址TTcloud拥有自...

A400互联37.8元/季,香港节点cn2,cmi线路云服务器,1核/1G/10M/300G

A400互联怎么样?A400互联是一家成立于2020年的商家,A400互联是云服务器网(yuntue.com)首次发布的云主机商家。本次A400互联给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐,香港节点上线cn2+cmi线路云服务器,37.8元/季/1H/1G/10M/300G,云上日子,你我共享。...

odbc数据源为你推荐
雅虎社区雅虎资讯在哪里提交公章制作如何用photoshop制作公章网站联盟网站联盟的运作流程办公协同软件求一款国内知名的OA办公软件,谁知道有哪些呢?雅虎天盾我机器上有瑞星杀毒和防火墙 我用雅虎天盾来查杀木马怎样?创维云电视功能谁能具体介绍一下创维云电视的主要功能,以及基本的使用方式,如果能分型号介绍就更好了,O(∩_∩)O谢谢宕机何谓宕机?二层交换机二层交换机是什么意思,三层呢电子商务网站模板电子商务网站策划书小米手柄手机用小米手柄能玩什么游戏
免费云主机 cn域名 域名管理 高防服务器租用 浙江vps 域名抢注工具 a2hosting 服务器评测 电影服务器 香港cdn 美国仿牌空间 外国域名 php空间申请 中国电信测速网 hktv web服务器搭建 英国伦敦 网站加速 杭州电信 广州主机托管 更多