linux 下C连接db2学习

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


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。