使用IBM DB2例程简化迁移的步骤
2008-09-03 16:27:48 来源:WEB开发网Sybase数据库中的host_name( ) 函数返回的是客户机进程(非 Adaptive Server 进程)的当前主机名,也就是运行该应用程序的计算机的主机名而非数据库服务器的主机名。
清单3.中展示了用户定义函数HOST_NAME的签名。
>>--HOST_NAME--()-------------><
该函数访问存储在DBINFO结构中的应用程序ID并解码客户机的IP地址(它是应用程序ID的一部分)。然后便使用C库函数“gethostbyaddr”来解析该IP地址的名称,该函数在必要时将访问名称服务器或其他源(比如 /etc/hosts)。
IP地址是应用程序ID中前面8字节的编码,或者使用"*LOCAL"来代表本地连接。对于本地连接,解析的是IP地址为127.0.0.1的主机名。
注意:
由于DRDA的需求,如果非本地IP地址的第一个字符初始为‘0’到‘9’,就将之映射到字母‘G’到‘P’。而在该名称查找之前,要将该映射反过来进行。
单4.演示了HOST_NAME函数的执行。可以在“下载”小节中找到该脚本host_name_example.db2的源代码。
清单4.测试函数HOST_NAME( )
下面这个例子测试演示了用以获取本地连接主机名的函数的执行。
在该场景中DB2数据库驻留在一个本地AIX机器上。
地址127.0.0.1 在 /etc/hosts文件中被映射到计算机名demoaix
:/*connecttothelocaldatabase*/
connecttosample
DatabaseConnectionInformation
Databaseserver=DB2/60008.1.2
SQLauthorizationID=DB2INST1
Localdatabasealias=SAMPLE
/*executethehost_namefunction*/
valueshost_name()"
1
------------------------------------------------
demoaix
1record(s)selected.
更多精彩
赞助商链接