UniDAC使用教程(一):连接到数据库
下载UniDAC最新版本
Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++Builder, Lazarus (以及 Free Pascal) , Mac OS X, iOS, Android, Linux和64和32位的FreeBSD等等。我们将长期的经验集于这个小组件,提供统一的数据库连接访问(如oracle、微软SQL等等)。这意味着您可以在您的项目之间轻松地切换不同的数据库,以及创建跨数据库应用程序接口。
本篇文章介绍了连接到具有不同提供程序的数据库的过程,以及连接参数的含义。
公共连接属性
Provider
用户名和密码
服务器
数据库
端口
提供程序特定属性
Oracle
SQL Server
MySQL
InterBase
PostgregSQL
SQLite
公共连接属性
每个数据库服务器都需要自己的一组参数用于连接(用户名、密码等)。一些参数对于多个服务器是相同的,但参数含义可能因服务器而异。工发组织为受支持的数据库服务器提供所有类型的参数。如果某个参数不用于某个提供程序,它将在"连接"对话框中被禁用,而不用于连接。工发组织支持以下参数:
Provider
这是应该设置的第一个参数。它指定将用于连接的提供程序和其他可用参数。
用户名和密码
这些属性用于每个数据库提供程序对客户端应用程序进行身份验证。
服务器
通常,此属性用于提供数据库服务器所在网络中计算机的名称或IP地址。如果SQL Server、MySQL和Interbase提供程序的server属性为空,则unidac将尝试连接到localhost。
Oracle--在客户机模式下,您应该指定出现在tnsnames.ora配置文件中的服务器名称。您还可以设置homename选项来指定要在客户机模式下使用的已安装客户机。
如果在直接模式下连接到Oracle服务器,则应以特殊格式指定server属性的值:host:port:sid。主机是服务器的IP地址或DNS名称,端口是服务器侦听的端口号,sid是服务器的Oracle系统标识符。SQL Server--应指定运行SQL Server的网络中计算机的名称或IP地址。如果您的SQL Server使用的端口与默认端口不同,则可以通过以下方式连接到该端口,指定端口号:hostname、port number。
ASE、MySQL和PostgreSQL--您应该指定运行数据库服务器的网络中计算机的名称或IP地址。
ODBC--您应该指定ODBC数据源名称(DSN)、包含数据源信息的文件名(文件DSN)或ODBC连接字符串
DB2--应该为服务器属性指定数据库名称
数据库
此属性用于Access、Advantage、SAP Sybase ASE、DBF、Interbase、MySQL、NextUSB、PostgreSQL、SQL Server和SQLite提供程序。它为连接指定初始数据库。在SAP Sybase ASE、MySQL和SQL Server上,当连接处于活动状态而不重新连接时,可以更改数据库值。如果未分配数据库,UniDAC的行为将取决于选定的provider:
MySQL--将不选择当前数据库。这意味着您需要在查询中显式指定数据库名称。
SQL Server和ASE--当前SQL Server登录的默认数据库将用作连接的默认数据库。为了连接到SQL Server Compact Edition,此属性用于提供数据库文件名。
端口
此属性用于SAP Sybase ASE、MySQL和PostgreSQL提供程序。它指定TCP/IP连接的端口号。
MySQL--默认值为3306。
PostgreSQL--默认值为5432。
ASE--默认值为5000。
提供程序特定属性
除了上面描述的连接选项之外,还有几个特定的选项来管理每个提供者的连接行为。这些选项在每个提供程序的特定于提供程序的Notes文章中进行了描述:Oracle、SQL Server、MySQL、Interbase、PostgreSQL和SQLite。打开与您感兴趣的提供者对应的文章,并在文章中找到tuniconnection的特定选项描述。下面将介绍几个重要的特定连接选项。
Oracle
使用Oracle提供程序,您可以以两种模式连接到服务器:客户机模式和直接模式。以客户机模式连接需要在客户机上安装Oracle客户机。直接模式下的连接不需要Oracle客户机,但是这种模式有一定的局限性。有关更多信息,请参阅文章中的Connecting in Direct Mode部分(将工发组织与Oracle结合使用)。
SQL Server
SQL Server提供程序可以通过三种客户端类型之一进行连接,这些客户端类型可以使用特定于OLEDBProvider的tuniconnection选项进行更改。默认情况下,此选项设置为prauto。此值表示提供程序将首先尝试打开SQL本机提供程序。如果此提供程序不可用,则将打开OLE DB提供程序。要连接到SQL Server Compact版本,必须将OledBProvider选项设置为prcompact。此值使名称以compact开头的所有特定选项生效。应在CompactVersion特定选项中指定要使用的SQL Server Compact版本。默认情况下,将根据数据库文件版本选择SQL Server Compact版本。如果该文件不存在,或者该文件不是有效的数据库文件,则将使用CompactVersion选项来确定要加载的服务器版本。
MySQL
mysql提供程序可以直接连接到mysql服务器,也可以使用客户端库libmysqld.dll。此行为由直接特定选项控制。默认情况下,Direct设置为true。如果直接切换到false,则需要在应用程序中部署libmysqld.dll。
为了连接到带有mysql embedded server的数据库,应该将embedded-specific选项的值切换为true。其默认值为假。如果Embedded设置为true,则忽略direct的值。带有共享目录的嵌入式服务器库应该与应用程序一起部署。数据路径应该在嵌入式服务器的配置文件中指定。
InterBase
Intelbase提供程序可以通过TCP/IP、NetBEUI和SPX等网络协议连接到服务器。将用于连接的网络协议可以通过特定于协议的选项指定。
PostgreSQL
PostgreSQL提供程序直接连接到PostgreSQL服务器,不使用PostgreSQL客户端库。
SQLite
SQLite提供程序可以使用sqlite客户端库sqlite3连接到数据库。您可以使用外部SQLite3库或嵌入式sqlite3引擎。此行为由选项控制。默认情况下,direct设置为false,在这种情况下,sqlite提供程序在path环境变量中指定的目录中搜索客户端库。如果数据库文件不存在,则SQLite可以自动创建该文件。为此,应使用ForceCreateDatabase特定选项。