网上找了好久的资料,也没有找到怎么告诉我如何编译和连接db2 ,用C语言这个工具,后来发现以前工作中见到安装完db2,huizai实例用户如db2inst1 的sqllib下面自带一个samples的文件夹,里面有各种工具连接db2的样例,如odbc,c,perl,java等。
这里我就看了一下C如何连接db2,通过在sqc中嵌入sql语句。
说到这里,要使用嵌入式c编程,大家要抽空看看db2的数据库编程的语法,有点像oracle的sql/pl的语法结构;
这里由于samples里面的样例用到了makefiel 连接选项bldapp进行编译,但是我自己的环境配置导致不能直接运行bldapp 需要加上./才行,所以当你写完test.sqc的代码后 ,可以这样编译程序,bldapp test
至于如何把你的代码加代库里,我网上找了一个不错的示例是这样的:
makefile是这样编写的:
GCC=gcc
CC=gcc
DB2PATH=/××××/××××/sqllib
CCFLAGS=-g
CFLAGS= -I$(DB2PATH)/include
LIBS= -L $(DB2PATH)/lib -ldb2
UID=XXXX
PWD=XXX
DB=XXX
BILLHOME=.
BILLBIN=.
BILLSRC=$(BILLHOME)
BILLOBJ=$(BILLHOME)
BILLLIB=../lib
INCLUDE=-I. -I$(BILLHOME)/src -I$(BILLLIB) -I$(DB2PATH)/include -I/usr/lib -I/usr/local/include -I/usr/include
TARGET1 = $(BILLBIN)/test
all(TARGET1)
.sqc.o:
db2 connect to $(DB) user $(UID) using $(PWD); db2 prep $*.sqc bindfile; db2 bind $*.bnd; db2 connect reset; $(CC) $(INCLUDE) -o $*.o -c $(CCFLAGS) $(CFLAGS) $(DEFS) $*.c ;
.c.o:
$(CC) $ (INCLUDE) -o $*.o -c $(CCFLAGS) $(CFLAGS) $(LIBS) $(DEFS) $*.c --def \standard.def
PICK_OBJS1= $(BILLSRC)/test.o
$(BILLBIN)/test: $(PICK_OBJS1)
$(CC) $(CFLAGS) -o $(TARGET1) $(PICK_OBJS1) $(ORACLE_LIB)$(LINKFLAG) $(LIBS)
clean:
rm -f *.o $(TARGET1) test.c test.o test.bnd原文:http://redpig315.blog.51cto.com/814039/1358453