网上找了好久的资料,也没有找到怎么告诉我如何编译和连接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