Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1041463
  • 博文数量: 297
  • 博客积分: 11721
  • 博客等级: 上将
  • 技术积分: 3431
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 10:21
文章分类

全部博文(297)

文章存档

2016年(9)

2011年(71)

2010年(137)

2009年(80)

分类: C/C++

2010-07-21 00:07:04

DB2嵌入式SQL程序makefile文件写法     -|cmikey 发表于 2006-9-3 20:52:00

这几天,写了一些使用DB2数据库的嵌入式SQL(E-SQL)的代码,现在差不多就要
对其进行编译测试 了,但是,直接遇到一个问题就是如何进行编译.其实,这个东
西对于使用过DB2或者其他嵌入式SQL(E-SQL)编程的人来说,可谓小菜一碟, 但是
没办法,谁叫咱是菜鸟呢!问题总得解决的,所以就在网上找了一些资料,好不容易
找到了一点介绍,为了方便大家使用,现在把其转载下 来,以供学习之用.
建立一个 C 语言里面嵌入 SQL 的应用程序之步骤如下:
  a 编写正确的原始嵌入式SQL程序,对于DB2它们的扩展名是".sqc".内容以C语言
的格式为主要架构,加入SQL 叙述.例如: test1.sqc.
  b 连结要用到的数据库.例如:db2 connect to stores
  c 利用DB2提的预编译程序 PREP 把 ".sqc" 文件先预编译成 ".c" 文件,且产生
bind file文件,例如: test1.bnd. bind file 主要在达成最佳化(optimize).例如:
db2 prep test1.sqc bindfile
  d Bind 到数据库,把 bind file 的内容绑到数据库里面.
例如:db2 bind test1.bnd
  e 断开与数据库的连结.例如:db2 connect reset
  f 利用C语言编译器编译 ".c" 文件成为OBJECT文件(.o文件).例如:
cc -c -O -I/sec2/dore2/hdwu/sqllib/include test1.c.其中 /sec2/dore2/hdwu
是数据库管理实体的拥有者的主目录home directory
  g 执行link 产生执行文件.例如:
cc -O -L/sec2/dore2/hdwu/sqllib/lib test1.o -o test1 -ldb2

综合上面的步骤,我们可在操作系统下面依次执行下述命令来完成编译:
db2 connect to stores    #链接数据库
db2 prep test1.sqc bindfile #预编译源程序
db2 bind test1.bnd     #邦定到数据库
db2 connect reset      #断开数据库链接
cc -c -O -I/sec2/dore2/hdwu/sqllib/include test1.c #编译源文件
cc -O -L/sec2/dore2/hdwu/sqllib/lib test1.o -o test1 -ldb2 #链接

当然,上面是在命令行上直接一条一条的打命令来实现的,大家一看就知道这样很麻烦.
因此,我们可以将其写到 makefile 文件里,让其自动执行(其实makefile文件的内容归
根结底还是命令,是命令行的集合).因此相应的makefile文件的内容我们可以如下 写:

#makefile

DB2    = db2
CC     = cc
CFLAGS = -O

IP1   = /sec2/dore2/hdwu/sqllib/include #包含的头文件路径
LP1   = /sec2/dore2/hdwu/sqllib/lib #库文件路径
LIB1  = db2  #库名

DATABASE = stores

EXE = test1

SQC = test1.sqc
C   = test1.c
BND = test1.bnd
OBJ = test1.o

all : $(EXE)

$(EXE) : $(OBJ)
$(CC) $(CFLAGS) -L$(LP1) $(OBJ) -o $@ -l$(LIB1)

$(OBJ) : $(C)
$(CC) -c $(CFLAGS) -I$(IP1) $(C)

$(C) $(BND) : $(SQC)
$(DB2) connect to $(DATABASE); \
$(DB2) prep $(SQC) bindfile; \
$(DB2) bind $(BND); \
$(DB2) connect reset

clean :
rm $(C) $(BND) $(OBJ) $(EXE)

好了,关于DB2下makefile文件的编写大概的成分及过程就是这样了,又学到了一点东西.
不过暂时本人还没有测试过.等测试之后的具 体情况在告诉大家.

阅读(2476) | 评论(0) | 转发(0) |
0

上一篇:sql语句大全

下一篇:linux控制台及VI中文

给主人留下些什么吧!~~