中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> IBM专区 > DB2 > 配置
配置 IBM DB2 通用数据库以构建 SQL 过程
作者:佚名 时间:2005-08-08 10:16 出处:互连网 责编:小渔
              摘要:配置 IBM DB2 通用数据库以构建 SQL 过程
Nanda Pilaka
IBM Corporation
2004 年 4 月
构建 SQL 过程中常见的错误源于编译器环境的错误配置。本文简明地解释了为构建 SQL 过程设置环境的过程。DB2 Version 7,fixpak 3 的版本信息提供了其他平台上默认编译命令的更多示例。

简介
IBM DB2® UDB Version 7 引入了 SQL 过程,作为它其中的一个新功能。SQL 过程是指用 SQL 语言编写的存储过程。本文讨论了设置环境以构建和部署 SQL 过程的过程。将 SQL 过程转换成 C 语言代码之后,就编译该代码来构建存储过程库。Windows®、OS/2®、UNIX®、OS/390® 以及 OS/400® 平台上均支持这些 SQL 过程。本文与 Windows、OS/2 和 UNIX 平台相关。

先决条件
要在一台机器上构建 SQL 过程,需要安装两个产品:

  1. Application Development Client(ADC),其中包含开发 DB2 应用程序所需的所有库、头文件、预编译器,等等。
  2. 一个支持 DB2 的 C 编译器。

 

关于平台所提供的支持 DB2 的 C 编译器的清单,请查阅 Application Building Guide。

设置环境
正如前面提到的,DB2 将 SQL 过程转换成 C 代码,此代码随后则被编译成存储过程库。为了编译该代码,必须配置 DB2 以检测所安装的 C 编译器。

为了配置 DB2 以检测所安装的 C 编译器:

  1. 创建用以为编译器设置环境的可执行文件。该文件将是 Windows 上的批(.bat)文件、OS/2 上的命令(.cmd)文件或 UNIX 上的 shell 脚本。设置编译器环境将包括更新 PATH、INCLUDELIB 环境变量。
  2. 通过发出下列命令,更新 DB2 注册表变量 DB2_SQLROUTINE_COMPILER_PATH 以指向第 1 步所创建的可执行文件:
    db2set DB2_SQLROUTINE_COMPILER_PATH=
                    full_path_to_executable_file
                    

注意:在 Windows NT® 和 Windows 2000 上,只要已将编译器的环境变量存作 SYSTEM 变量,就无需设置以上注册表变量。

DB2 还提供了每个平台上默认的可执行文件,用以为该平台所支持的其中一个(默认的)编译器设置环境。其默认的文件名和位置取决于平台:

  • 在 Windows 上: %DB2PATH%\\sqllib\\function\\routine\\sr_cpath.bat
  • 在 OS/2 上: %DB2PATH%\\sqllib\\function\\routine\\sr_cpath.cmd
  • 在 UNIX 上: $HOME/sqllib/function/routine/sr_cpath

默认情况下,DB2 会将 DB2_SQLROUTINE_COMPILER_PATH 设置为上面的其中一个文件,除非已将其注册表变量修改为指向一个不同的文件。因此,如果安装了默认的 C 编译器并且打算将之用于开发,就无需创建一个单独的可执行文件来设置编译器环境。

应检查上述文件的内容以确保它们正确反映了焦点平台中默认编译器的环境设置。例如,在 Windows NT 和 Windows 2000 上, sr_cpath.bat 文件假定 Microsoft Visual C++® Version 6 安装在 C:\\Program Files\\Microsoft Visual Studio 之下。如果它安装在 D:\\Microsoft Visual Studio 之下,那么该文件的内容就需要进行修改。

另一个常见的错误就是对该文件进行了所有的正确修改,但却保留了编译器环境设置命令周围的注释。再次检查 sr_cpath.bat 文件的内容,您将注意到该文件中所有行都以 REM 关键字开头。REM 关键字用于注释行的开始,所以应将之删除以便设置编译器环境。

编译转换过来的 C 代码
在配置完 DB2 以检测编译器环境之后,就需要配置它,以使用针对所安装的编译器的编译命令。这将通过将另一个 DB2 注册表变量 DB2_SQLROUTINE_COMPILE_COMMAND 设置为所安装编译器的编译命令来完成。 DB2_SQLROUTINE_COMPILE_COMMAND 将被设置为该平台上默认编译器的一个默认的编译命令。以下是 AIX®、Solaris® 和 Windows 平台上默认编译命令的示例:

在 AIX 上,用于 AIX Version 3.6.6 的 IBM C Set++ 的默认编译命令为:

xlC_r -+ -H512 -T512 -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \            -bE:SQLROUTINE_FILENAME.exp -e SQLROUTINE_ENTRY \            -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2

在 Solaris 上,SPARC Compiler C++ Version 4.2 和 5.0 的默认编译命令为:

cc -# -Kpic -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -G \            -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -R$HOME/sqllib/lib -ldb2 

在 Windows 上,Microsoft Visual C++ Version 5.0 和 6.0 的默认编译命令为:

cl -Od -W2 /TC -D_X86_=1 -I%DB2PATH%\\include SQLROUTINE_FILENAME.c
            /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll
            %DB2PATH%\\lib\\db2api.lib

注意:以上 AIX 和 Solaris 平台上的‘\’用于指示回车。对于 Windows 平台,其整个命令就是连续的一行,不用‘\’来指示回车符。

定制编译命令
如果安装不同的编译器(因而需要不同的编译命令),或者如果定制默认的编译选项,那么您就需要将 DB2_SQLROUTINE_COMPILE_COMMAND 设置为定制的编译命令。下列示例展示了如何指定以上所示每个默认编译命令的调试选项(用以返回调试信息):

要在 AIX 平台上返回调试信息,就要在默认的编译命令中添加 -g 选项并且更新 DB2_SQLROUTINE_COMPILE_COMMAND ,如下所示:

db2set DB2_SQLROUTINE_COMPILE_COMMAND=攛lC_r -+ -H512 -T512 -g \            -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \            -bE:SQLROUTINE_FILENAME.exp -e SQLROUTINE_ENTRY \            -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2

要在 Solaris 平台上返回调试信息,就要在默认的编译命令中添加 -g 选项并且更新 DB2_SQLROUTINE_COMPILE_COMMAND ,如下所示:

db2set DB2_SQLROUTINE_COMPILE_COMMAND=攃c -# -Kpic -g \            -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -G \            -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -R$HOME/sqllib/lib -ldb2

要在 Windows 平台上返回调试信息,就要更新 DB2_SQLROUTINE_COMPILE_COMMAND ,如下所示:

db2set DB2_SQLROUTINE_COMPILE_COMMAND=cl -Od -W2 /TC -D_X86_=1
            -I%DB2PATH%\\include SQLROUTINE_FILENAME.c /link -dll
            -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll
            -debug:full -pdb:none -debugtype:cv %DB2PATH%\\lib\\db2api.lib

再次请注意在 Windows 平台上,编译命令应按一行连续输入。

恢复为默认的编译命令
DB2_SQLROUTINE_COMPILE_COMMAND 设置为空将会恢复默认的编译命令和选项。其设置如下所示:

db2set DB2_SQLROUTINE_COMPILE_COMMAND=

结束语
构建 SQL 过程有两个主要步骤:

  1. 安装编译器并配置 DB2 以检测编译器环境。这是通过创建用以设置编译器环境( PATH、LIBINCLUDE 环境变量)的可执行文件,以及将 DB2_SQLROUTINE_COMPILER_PATH 设置为该文件来完成的。可使用默认的可执行文件( sr_cpath/sr_cpath.bat/sr_cpath.cmd )或创建新文件来为不同的编译器设置编译器环境。
  2. DB2_SQLROUTINE_COMPILE_COMMAND 设置为一个编译命令。可使用默认的编译命令或者将 DB2_SQLROUTINE_COMPILE_COMMAND 设置为一个定制的编译命令(例如添加调试选项、64 位选项,等等)。

 

构建 SQL 过程中常见的错误源于编译器环境的错误配置。本文简明地解释了为构建 SQL 过程设置环境的过程。DB2 Version 7,fixpak 3 的版本信息提供了其他平台上默认编译命令的更多示例。

关于作者
Nanda Pilaka可通过 nandap@us.ibm.com联系到。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有