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 |
set IdeDir="D:\Program Files\Embarcadero\RAD Studio\7.0 call ..\Make.bat Delphi 14 WIN32 |
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字段类型,使得几乎所有的语言符号都可以正确工作,但另一方面,也引起工作延迟。

代码实现的方式如下:
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; |