Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » 部署 SQL Anywhere » 部署数据库和应用程序 » 部署客户端应用程序 » 部署 ODBC 客户端

 

部署连接信息

ODBC 客户端连接信息通常以 ODBC 数据源形式部署。您可以按照下列方式之一来部署 ODBC 数据源:

  • 编程方式   将数据源的说明添加到最终用户的注册表或 ODBC 初始化文件中。

  • 手工   向最终用户提供说明,以便他们能够在自己的计算机上创建相应的数据源。

    在 Windows 上,应使用 [ODBC 管理器] 中的 [用户 DSN] 选项卡或 [系统 DSN] 选项卡手工创建数据源。SQL Anywhere ODBC 驱动程序显示用于输入设置的配置窗口。数据源设置包括数据库文件的位置、数据库服务器的名称以及任何启动参数和其它选项。

    在 Unix 平台上,可以使用 SQL Anywhere 的 dbdsn 实用程序来手工创建数据源。数据源设置包括数据库文件的位置、数据库服务器的名称以及任何启动参数和其它选项。

对于每种方式,本节都向您提供需要了解的信息。

数据源类型 (Windows)

有三种数据源:用户数据源、系统数据源和文件数据源。

用户数据源定义存储在注册表的某个部分中,其中包含了当前登录到系统的特定用户的设置。但是,系统数据源对于所有用户和 Windows 服务可用,无论用户是否登录到系统,Windows 服务都运行。给定一个名为 MyApp 的正确配置的系统数据源,任何用户都可以通过在 ODBC 连接字符串中提供 DSN=MyApp 来使用该 ODBC 连接。

文件数据源不保留在注册表中,而是保留在一个专门的目录中。连接字符串必须提供 FileDSN 连接参数才能使用文件数据源。

数据源注册表条目 (Windows)

每个用户数据源都由注册表条目向系统标识。确保可以为数据源定义创建正确的注册表条目最简单的方法是使用 SQL Anywhere dbdsn 实用程序进行创建。

否则,您必须在特定的注册表项中创建一组注册表值。

对于用户数据源,该注册表项如下所示:

HKEY_CURRENT_USER\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            user-data-source-name

对于系统数据源,该项如下所示:

HKEY_LOCAL_MACHINE\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            system-data-source-name

该项包含一组注册表值,每个值都与一个连接参数相对应。例如,对应于 SQL Anywhere 11 Demo 系统数据源名 (DSN) 的 SQL Anywhere 11 Demo 项包含以下针对 32 位 Windows 的设置:

值的名称 值的类型 值的数据
Autostop String YES
DatabaseFile String samples-dir\demo.db
Description String SQL Anywhere 11 Sample Database
Driver String install-dir\bin32\dbodbc11.dll
Password String sql
ServerName String demo11
StartLine String install-dir\bin32\dbeng11.exe
UserID String DBA
注意

建议在所部署应用程序的连接字符串中包含 ServerName 参数。这样可确保当计算机运行着多个 SQL Anywhere 数据库服务器时,应用程序可连接到正确的服务器,并且可以帮助防止出现与计时相关的连接故障。

在上述条目中,install-dir 是 SQL Anywhere 的安装目录。对于 64 位 Windows,bin32 将替换为 bin64

另外,您必须将数据源名添加到注册表中的数据源列表中。对于用户数据源,使用以下注册表项:

HKEY_CURRENT_USER\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            ODBC Data Sources

对于系统数据源,使用以下项:

HKEY_LOCAL_MACHINE\
   SOFTWARE\
      ODBC\
         ODBC.INI\
            ODBC Data Sources

该值将每个数据源与一个 ODBC 驱动程序相关联。值的名称是数据源的名称,值的数据是 ODBC 驱动程序的名称。例如,由 SQL Anywhere 安装的系统数据源名为 SQL Anywhere 11 Demo,其值如下所示:

值的名称 值的类型 值的数据
SQL Anywhere 11 Demo String SQL Anywhere 11
小心:ODBC 设置很容易查看

用户数据源配置可以包含敏感的数据库设置(如用户的 ID 和口令)。这些设置以纯文本形式存储在注册表中,可使用由 Microsoft 随操作系统提供的 Windows 注册表编辑器 regedit.exeregedt32.exe, 来查看。您可以选择加密口令或要求用户在连接时输入口令。

必需的和可选的连接参数

可通过以下方式在 ODBC 连接字符串中标识数据源名称:

DSN=UserDataSourceName

在 Windows 上,如果在连接字符串中提供了 DSN 参数,则首先在 Windows 注册表中搜索当前用户数据源定义,然后再搜索系统数据源。只有在 ODBC 连接字符串中提供了 FileDSN 时才搜索文件数据源。

下表阐释了当数据源存在且以 DSN 或 FileDSN 参数形式包括在应用程序的连接字符串中时,用户和开发人员应该注意的一些问题。

当数据源…… 连接字符串还必须标识…… 用户必须提供……
包含 ODBC 驱动程序的名称和位置;数据库文件/服务器的名称;启动参数;用户 ID 和口令。 无额外信息 无额外信息。
包含 ODBC 驱动程序的名称和位置;数据库文件/服务器的名称;启动参数。 无额外信息 用户 ID 和口令(如果未在 DSN 中提供)。
只包含 ODBC 驱动程序的名称和位置。 数据库文件的名称 (DBF=) 和/或数据库服务器的名称 (ENG=)。或者,它可能包含其它连接参数,例如,Userid (UID=) 和 PASSWORD (PWD=)。 用户 ID 和口令(如果未在 DSN 或 ODBC 连接字符串中提供)。
不存在 要使用的 ODBC 驱动程序名称 (Driver=) 和数据库名称 (DBN=)、数据库文件 (DBF=) 和/或数据库服务器 (ENG=)。或者,它可能包含其它连接参数,例如,Userid (UID=) 和 PASSWORD (PWD=)。 用户 ID 和口令(如果未在 ODBC 连接字符串中提供)。

有关 ODBC 连接和配置的详细信息,请参见以下内容: