编译SQC
使用C语言编写嵌入式SQL以访问DB2的程序,DB2预编译器可以将SQL语法直接转换为DB2行时服务应用程序编程接口(API)调用。
bind的主要作用是根据SQC中的SQL语句使用的表和操作指定访问时DB要使用的策略,是一种优化作用,以加快数据访问的速度。
预编译命令:
db2 prep *.sqc bindfile
bindfile参数作用是生成和sqc文件同名的.bnd文件。
接下来就和一般的C程序一样进行编译了,来看看这个简单的Makefile,AIX 编译64位的应用。
CHMOD =chmod 755 RM =rm -f #export OBJECT_MODE=64 DB2_HOME=/opt/IBM/db2/V9.1 CFLAGS= -q64 -qchars=signed -I. -g -I$(DB2_HOME)/include LDFLAGS = -b64 -g -L $(DB2_HOME)/lib64 -ldb2 DB2 =db2 BINHOME=$(HOME)/batch/bin CC= xlc_r #DB CONFIGURE DBNAME = db2name USEID = db2user PASWD = db2pswd ALL =$(BINHOME)/ApsBatchWS all:$(ALL) .SUFFIXES: .SUFFIXES:.sqc .cpp .c .o OBJS = dbcons.o serv.o util.o log.o flow.o .sqc.o: $(DB2) connect to $(DBNAME) user $(USEID) using $(PASWD) @$(RM) *.bnd $*.c @$(DB2) prep $< bindfile @$(DB2) bind $*.bnd @$(DB2) connect reset @$(DB2) terminate @$(CC) $(CFLAGS) -s -c $*.c .c.o: $(CC) -c $(CFLAGS) $< .cpp.o: $(CC) -c $(CFLAGS) $< $(ALL) : $(OBJS) $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $@ $(CHMOD) $@ clean: $(RM) *.o dbcon.c dbcons.bnd $(ALL)
看这里还有好多的例子:点击这里查看
sqc的编写方法这里就不再赘述,相关的文章已经太多了。