表 2. 从 DB2 UDB for Linux、UNIX 和 Windows CLI 客户机应用程序连接到 DB2 UDB 服务器(任何平台)
Machine 1(‘myblue’)DB2 UDB for Linux、UNIX 和 Windows Machine 2(‘aries’)DB2 UDB 服务器(任何平台) 在这台机器上运行下列命令: 您需要从这台机器上获取下列信息,以便在 machine 1 上执行命令: 第一部分:配置连通性 db2 catalog tcpip node mynode remote 9.23.190.24 server 50000
db2 catalog db sample at node mynode
db2 terminate
请参阅该系列文章的 第 1 部分以获得连通性设置的详细指导。 第二部分:编译并链接 CLI 程序
在 Windows 中使用 MS Visual Studio 6:
- cl -Zi -Od -c -W2 -DWIN32 dbconn_ODBC_CLI.c
- link -debug -out:dbconn_ODBC_CLI.exe dbconn_ODBC_CLI.obj db2cli.lib db2api.lib
对于本文,我们将以上两个命令放置在名为‘bldappCLI.bat’的文件之中,而该文件是以程序名(不带扩展名)为参数的。
请注意,我们是使用与 odbc32.lib(ODBC 驱动程序管理器)相对的 db2cli.lib (CLI 驱动程序)来链接程序的。这意味着这是一个 CLI 程序,因而它不会通过 ODBC 驱动程序管理器;因此,该程序将仅仅对一个 DB2 UDB 数据库进行操作。
* 注意事项:
- DB2 运行时客户机已经足够运行这个 CLI 程序了。但是,如果要像在本例中一样开发这个程序,由于需要对程序进行编译,那么您就需要 DB2 UDB 应用程序开发客户机(DB2 UDB Application Development client)。
- 应确保已正确设置了环境变量(请参阅 表 1中的实例)。
- 该示例程序被设计为按此次序获取 3 个参数:<数据库名> <用户 ID> <密码>
- ‘Sample’是此客户端机器上的 catalog db 命令中为数据库名指定的别名。默认情况下,如果没有在该命令中指定别名,那么数据库名就相当于别名。
db2admin = 服务器上的用户 ID
mypsw = 服务器上的密码
图 2 显示了 DB2 UDB 命令‘list db directory’的输出,该命令是在用于开发程序的 Windows 系统中发出的。第一个条目‘NEW_JERS’表示一个 DB2 UDB for z/OS 数据库,第二个条目‘NORISC6’表示一个 DB2 UDB for iSeries 数据库,而最后的第三个条目‘SAMPLE’则表示一个 DB2 UDB for Linux、UNIX 和 Windows 数据库。本文中所有的示例程序将在适当的地方对这三个数据库进行操作。
图 2. List db directory 输出(系统数据库目录)图 3 显示了对 图 2中所示的三个数据库运行程序 db2conn_ODBC_CLI.c 时的输出。
图 3. dbconn_ODBC_CLI.c 程序输出场景 2 - 使用 ODBC 连接 DB2 UDB 数据库(任何平台)
DB2 UDB 遵从 ODBC 3.51。与在场景 1 中所提到的一样,跟 ODBC 驱动程序管理器进行交互时,由 DB2 UDB CLI 驱动程序充当 DB2 UDB ODBC 驱动程序。
在 Windows 平台中,MS ODBC 驱动程序也会随 DB2 UDB 一起被默认安装(若找到更新版本的驱动程序管理器,DB2 UDB 安装不会将之覆盖掉)。而在 UNIX 和 Linux 平台中却没有提供驱动程序管理器。然而从 DB2 UDB V8 开始,IBM 正式支持开放源代码的 unixODBC 驱动程序管理器。
图 4. 从 DB2 UDB for Linux、UNIX 和 Windows ODBC 应用程序客户机连接到 DB2 UDB 服务器(任何平台)请注意,对于该场景,我们使用了与 清单 1中所示完全相同的程序。当您直接用 db2cli.lib 库(CLI 驱动程序)链接程序 db2conn_ODBC_CLI.c 时,它就是一个‘CLI’程序。而当用 odbc32.lib 库进行链接时,此同一程序将被视作一个 ODBC 程序。
表 3. 从 DB2 UDB for Linux、UNIX 和 Windows ODBC 应用程序客户机连接到 DB2 UDB 服务器(任何平台)
Machine 1(‘myblue’)DB2 UDB for Linux,UNIX and Windows Machine 2(‘aries’)DB2 UDB 服务器(任何平台) 在这台机器上运行下列命令: 您需要从这台机器上获取下列信息,以便在 machine 1 上执行命令: 第一部分:配置连通性 db2 catalog tcpip node mynode remote 9.23.19






