Delphi 2010安装及使用UniDAC 4.0

本文介绍如何安装及配置UniDAC 4.0源码版本,并通过示例演示如何利用该组件连接MySQL数据库。UniDAC是一款适用于多种开发环境的非可视化跨数据库访问组件,支持多种数据库服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


        UniDAC是一个功能强大的非可视化跨数据库的数据访问组件,可用于Delphi,Delphi for .NET,C++Builder,and Lazarus (Free Pascal)。它提供了对流行数据库服务器的统一访问,像Oracle,Microsoft SQL Server,MySQL,InterBase,Firebird,PostgreSQL,SQLite,DB2,Microsoft Access,Sybase Advantage Database Server,Sybase Adaptive Server Enterprise,和其他数据库(使用ODBC驱动)。

        
        从网上下载到 UniDAC 4.0的源码版本,安装过程如下:
        1.进入" ...\unidac40src\Source\Delphi14"文件夹,找到 "Make.bat"文件,打开并修改IDE目录路径,如下:
set IdeDir="%PROGRAMFILES%\Embarcadero\RAD Studio\7.0 
call ..\Make.bat Delphi 14 WIN32 
        因为我这里Delphi 2010不是安装在默认位置,故修改如下:
set IdeDir="D:\Program Files\Embarcadero\RAD Studio\7.0 
call ..\Make.bat Delphi 14 WIN32 
        2.执行" Make.bat"文件,自动执行一系列操作后,到" ...\unidac40src\Bin\Delphi14"目录下,可发现库已经生成完毕;
        3.运行Delphi 2010,菜单→"Tools"→"Options"→"Environment Options"→" Environment Variables",添加"...\unidac40src\Bin\Delphi14"完整路径到" PATH"环境变量;
        4.菜单→" Component"->" Install Packages...","Add"添加"...\unidac40src\Bin\Delphi14"目录下的" dclunidac140.bpl";
        5.菜单→"Tools"→"Options"→" Environment Options"→" Delphi Options"→" Library - Win32",在" Library Path"添加" ...\unidac40src\Lib\Delphi14"路径;
        6.此时,已可以使用UniDAC连接数据库了。若是需要链接查看源代码,将"...\unidac40src\Source"路径也添加到" Library Path"。
        
        测试连接MySql数据库:
        1.新建一个应用程序,在面板上拖动TUniConnection、TMySQLUniProvider、TUniQuery、TUniDataSource、TDBGrid到窗体上,如下图所示:

        2.右键TUniConnection,选择" Connection Editor...",填入数据库连接参数,如下图所示:
 

        3.因为MySql一般设置字符集为UTF-8,而Delphi 2010工程字符集是Unicode,在"Options"页面,设置"UseUnicode"为True,这可以通知服务器,客户端和服务器双方之间的所有数据都将通过UTF-8编码,设置这个选项会转换所有的TStringField字段类型到TWideStringField字段类型,使得几乎所有的语言符号都可以正确工作,但另一方面,也引起工作延迟。

        4.关联其他项,在TUniQuery的SQL里面写"select * from city",设置Active为True,运行程序,可以看到符号都可以正常显示,如下图所示:

        代码实现的方式如下:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  UniQuery1.Connection := UniConnection1; 
  UniDataSource1.DataSet := UniQuery1; 
  DBGrid1.DataSource := UniDataSource1; 
  with UniConnection1 do 
  begin 
    ProviderName := 'MySQL'
    Username := 'root'
    Password := '123'
    Server := '192.168.82.201'
    Database := 'world'
    Port := 3306
    SpecificOptions.Values['UseUnicode'] := 'True'
    try 
      Connect; 
      UniQuery1.Close; 
      UniQuery1.SQL.Text := 'select * from city'
      UniQuery1.Open; 
    except 
 
    end
  end
end


本资源收录自从互联网,如果有侵犯任何版权,请告知说明,我将撤销发布======================================================== 说到数据集组件,大家也许会首选ADO,然后说BDE太老了,DBX不敢用。其实delphi优秀的数据集组件真不少,除了上诉的数据集组件,还有ZEOSDB、SQL Direct、UniDAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等,商业和开源不尽其中!这里只讨论UniDAC和ADO的一些比较。 Delphi能发展到现在,和一些著名的第三方控件厂商大力支持分不开,这其中包括Devart公司(Corelab)公司。Corelab公司做数据集驱动非常出名,就拿ODAC、SDAC和DBX驱动来说,已经远胜其他同行的第三方控件公司。UniDAC是Devart公司最近的力作,将ODAC、SDAC、IBDAC等驱动综合集成在一块。UniDAC无论是做三层还是两层,都远胜于ADO。下面说一些UniDAC的优点: 1、非常完美的支持多数据库的数据集套件。这一点,ADO也支持多数据库,但ADO除了MSSQL驱动之外,其他驱动支持的非常差。就拿Oracle驱动来说,在调用oracle复杂的存储过程参数,总是或多或少有些问题;MSSQL企业管理器如果用了第三方驱动(比如是oracle),在导入导出数据也尚存在问题!更别提不是主流的IB数据库驱动。UniDAC支持Oracle、MSSQL、MYSQL、IB/FB、PostgreSQL。 2、对三层特性支持非常好!也许你也会问,三层也是访问DB,ADO也支持啊?!但三层最好方式是无状态方式,在高并发的处理中,一般不允许本地有数据集缓存。ADO没有单向数据集特性,所有的数据下载到本地,不停的开辟内存或释放大内存,对三层的内存是一个极大考验。TUniQuery有一个UniDirectional属性,支持单向速度,这点和DBX的想法不谋而合。况且,单向数据集特性速度非常快,在三层中,配合TDataSetProvider,中间件将其Data包发送到客户端,速度无可比拟。ADO也有流或XML格式包,但无论是XML或流格式,数据包远比CDS的包大几倍。CDS封包技术很好! 3、一些非常有用的属性或方法。常言道,细微之处见体贴。UniDAC有一些过人的方法或属性。比如,刷新单条记录(RefreshRecord)、多表更新的属性(UpdatingTable)、宏替换参数(Macros)、集成删除/新增/修改/刷新/锁定SQL语句、FetchRows,更让人称道的是引入了UpdateSQL组件。 在处理MSSQL新增后的自增字段,和ADO一样可以直接自动返回自增字段值,这一点,BDE不能做到、DBX不能做到、ZEOSDB不能做到。更令人称奇是,配合TUniUpdateSQL,还能自动返回自增字段值。 TUniUpdateSQL是一个好东西,ADO缺少TUdateSQL运作模式,默认的更新机制是主键字段+已变化的字段做where条件。在一般情况下是没问题,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdateSQL可以保证这点,运作灵活又透明。 4、对oracle支持非常好。别的不说,光是一个oracle连接的Direct Mode,不用安装oracle官方肥硕客户端(网上也有精10M左右简版的客户端),只要客户机支持TCP/IP协议即可。如果用ADO连接Oracle,必须保证先安装oracle客户端,还要配置连接文件,一堆繁琐事情。UniDAC对oracle支持的非常完美,和专业化的DOA差不多!
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值