在 Windows 中用 GCC 编译 DB2 UDB 存储过程
2009-12-08 00:00:00 来源:WEB开发网setlocal防止 set DB2PATH命令修改您的全局命令行环境。
set创建一个包含 DB2 include 文件 (db2\\include) 和目标库 (db2\\lib) 路径的本地环境变量。
gcc将 C 文件编译到一个目标文件
-c表示只做编译(不链接)
-g表示包含调试信息
-mno-cygwin表示“不从 Cygwin 环境生成代码”
-I指出 DB2 include 头文件的路径
%1.c是生成的 C 文件的名字
%1.o是编译的目标文件的名字
dllwrap从目标文件,DB2 链接文件和 standard.def文件创建 DLL 文件。它实际上几次调用链接器 ( ld) 和 dlltool,每次创建一个最终的 DLL。
-target显示目标机器结构 (386) 和运行时间库 (mingw32 = Windows 32下最小的 GNU)。Mingw32 库是已有的 MSVCRTnn.DLL 库(通常在 \\windows 或者 \\winnt 目录中)上一个薄的层。因此,它使用每个 Windows 系统上可用的 C 运行时间库。
standard.def包含导出的被编译的过程的入口点名。因为每个 DB2 过程的这个名字都一样,所以一个标准的文件就足够了。
测试使用 DB2 UDB 的安装
测试您的 GCC 安装
为测试 GCC 安装,运行 Cygwin shell 并输入 (注意: 两个破折号):
gcc --version
输出结果类似如下:
gcc (GCC) 3.2 20020927 (prerelease)
创建一个样例过程。
在这个样例文件 sample.clp 中,感叹号作为 DB2 命令的分隔符。
注意 connect命令的语法是:
connect to <database> user <id> using <password>
您必须根据您的安装来调整参数值。
列表 3. sample.clp 文件
connect to sample user db2admin USING somepassword!
drop table result!
create table result (text VARCHAR(80))!
drop procedure TestProcedure!
create procedure TestProcedure ()
BEGIN
insert
into result (text)
values ('If you can read this, it worked.');
END!
call TestProcedure!
select text from result!
terminate!
更多精彩
赞助商链接