db2的編譯示例

偶然使用db2,編譯時遇到問題經過測試,解決後記到這裏備查。

一、代碼:test_db2.SQC【

[code]

 

/************************************************************
函數名稱:
功能說明: 輸入參數:

輸出參數:

返    值:
   0: 成功
  -1: 失敗
************************************************************/
EXEC SQL INCLUDE SQLCA;
int main(int argc, char **argv)
{
int iRet=0;
EXEC SQL BEGIN DECLARE SECTION;
    char Uname[8+1]="test";
    char Pwd[8+1]="test";
    long TotCnt = 0;
    char MsgIdNo[35+1];
EXEC SQL END    DECLARE SECTION;
    EXEC SQL CONNECT to EEPS USER :Uname USING :Pwd;
    memset( MsgIdNo, 0x00, sizeof(MsgIdNo) );
    EXEC SQL SELECT count(*) INTO :TotCnt FROM  ChkTotRcv;
    if( SQLCODE ) {
        printf( "SQLCODE=[%d]/n",SQLCODE );
        return(SQLCODE);
     }
     else {
         printf( "Cnt=[%d]/n", TotCnt);
         printf( "SQLCODE=[%d]/n",SQLCODE );
     }

    return 0;
}

 

 

[/code]

 

 

 二、編譯命令:

這個限於用戶環境和DB2的安裝環境,這裏使用的是AIX.

[

[code]

[:/app/zgl_tmp] cat mk.log

cc -E test_db2.SQC > test_db2.sqc
db2 perp test_db2.sqc BINDFILE USING test_db2.bnd  blocking all qualifier csp;
cc -E test_db2.SQC > test_db2.sqc
db2 connect to $DBNAME USER $DBUSER USING $DBPASS;
db2 prep test_db2.sqc BINDFILE USING test_db2.bnd blocking all qualifier csp;
db2 bind test_db2.bnd datetime iso isolation cs ;
cc -o test_db2.o -c  -DSCOUNIX -DAIX_UNIX -DDB_DB2 -I/home/db2inst3/sqllib/include   -g  -DDEBUG test_db2.c
cc -o testdb2 test_db2.o  -L/home/db2inst3/sqllib/lib -ldb2 -lc -lm
ls -l
[:/app/zgl_tmp]./testdb2

Cnt=[0]
SQLCODE=[0]
cd
[:/app/zgl_tmp]

 

[/code]

]

三、整理的makefile

[

[code]

 

#

include $(APPDIR)/inc/makefile.h
EEPSINC=$(APPDIR)/eeps/inc


CFLAGS  = -DSCOUNIX -DAIX_UNIX -DDB_DB2 -I/home/db2inst3/sqllib/include -g -DDEBUG
MFLAGS  = -L/home/db2inst3/sqllib/lib -ldb2 -lc -lm

MAINSRC = test_db2.o

#all: test_db2

test_db2:$(MAINSRC)
 $(CC) -o $@ $(MAINSRC) $(MFLAGS)
# $(RM) -f *.o


.SUFFIXES:.c .SQC

.SQC.o:
 $(CC) -E $*.SQC > $*.sqc
 db2 connect to $(DBNAME) USER $(DBUSER) USING $(DBPASS);
 db2 prep $*.sqc BINDFILE USING $(BNDDIR)$*.bnd  blocking all qualifier csp;
 db2 bind $(BNDDIR)$*.bnd datetime iso isolation cs ;
 $(CC) -o $*.o -c $(CFLAGS) $*.c
# $(RM) -f $*.c $*.sqc

#.c.o:
# $(CC) -c $(CFLAGS) $<

clear:
 $(RM) *.bnd *.o *.sqc test_db2.c
 

 

[/code]

]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章