UniDAC是最受欢迎的数据集组件,它将ODAC、SDAC、IBDAC等驱动综合集成在一块,可以直接访问最流行的数据库服务器,德尔福,NET,C + + Builder中。Oracle,微软的SQL Server,MySQL和Interbase的火鸟这样的服务器。
UniDAC是一个方便使用和高效的数据访问解决方案发挥作用的许多具体到每个服务器的功能,旨在帮助程序员开发更快和更清洁的数据库应用程序。UniDAC这样的标准通用技术的dbExpress是一个完整的更换。
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差不多!
1、找到source\delphi7目录,所有的DPK文件都在这里。
2、编译DAC 运行包,即dac70.dpk。
3、如果是D6或D7,编译DAC GUI related package,即dacvcl70.dpk。
4、编译DAC运行包,即dcldac70.dpk。
5、如果是D6或D7,编译unidacvcl70.dpk。
6、分别编译驱动包:PG/ORA/MSSQL/MYSQL/IB的驱动包。
7、编译安装UniDAC设计包,即 dclunidac70.dpk。
需要注意的是,
1、UniDAC和ODBC的驱动包有冲突。
2、UniProviders下的驱动包INC文件,诸如IbDac.inc、Odac.inc等,默认不是专业版,请在这些Inc文件中,添加一句 {$DEFINE UNIDACPRO},避免在运行期中找不到一些特定的文件。
3、DPK文件中的Option似乎有问题,最好是改为OutPut Directory改为空,输出到delphi的默认路径(projects\BPL\),Unit OutPut Directory是指为".",输出到当前路径下。
4、最后一点也是老生常谈的一点,别忘给IDE的library路径添加UniDAC路径,即Source的路径。
XE2 对应 160
还要把D:\Program Files\XEThirdVcl\UniDac50src\Lib\Delphi16\Win32 路径也加进去
UniDAC是一个方便使用和高效的数据访问解决方案发挥作用的许多具体到每个服务器的功能,旨在帮助程序员开发更快和更清洁的数据库应用程序。UniDAC这样的标准通用技术的dbExpress是一个完整的更换。
【的优点】
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差不多!
【使用方法】
UniDAC由于融合了多种数据库连接,手动安装有点麻烦。虽然可以用Source目录下的Make.BAT文件,稍改一下delphi不同版本的Bin路径,但我等有点安装delphi控件经验的人,最喜欢直接用DPK文件去安装。安装步骤如下(以D7为参照):1、找到source\delphi7目录,所有的DPK文件都在这里。
2、编译DAC 运行包,即dac70.dpk。
3、如果是D6或D7,编译DAC GUI related package,即dacvcl70.dpk。
4、编译DAC运行包,即dcldac70.dpk。
5、如果是D6或D7,编译unidacvcl70.dpk。
6、分别编译驱动包:PG/ORA/MSSQL/MYSQL/IB的驱动包。
7、编译安装UniDAC设计包,即 dclunidac70.dpk。
需要注意的是,
1、UniDAC和ODBC的驱动包有冲突。
2、UniProviders下的驱动包INC文件,诸如IbDac.inc、Odac.inc等,默认不是专业版,请在这些Inc文件中,添加一句 {$DEFINE UNIDACPRO},避免在运行期中找不到一些特定的文件。
3、DPK文件中的Option似乎有问题,最好是改为OutPut Directory改为空,输出到delphi的默认路径(projects\BPL\),Unit OutPut Directory是指为".",输出到当前路径下。
4、最后一点也是老生常谈的一点,别忘给IDE的library路径添加UniDAC路径,即Source的路径。
XE2 对应 160
还要把D:\Program Files\XEThirdVcl\UniDac50src\Lib\Delphi16\Win32 路径也加进去