- 論壇徽章:
- 0
|
是在ubuntu上執(zhí)行一個簡單的連接數(shù)據(jù)庫sqc文件問題
這是我的sqc代碼:- #include<stdlib.h>
- #include<stdio.h>
- #include<string.h>
- EXEC SQL INCLUDE SQLCA;
- EXEC SQL BEGIN DECLARE SECTION;
- char dbcaDBName[25];
- char dbcaDBUser[25];
- char dbcaDBPwd[25];
- EXEC SQL END DECLARE SECTION;
- int main(int argc, char *argv[])
- {
- memset(dbcaDBName, 0, sizeof(dbcaDBName));
- memset(dbcaDBUser, 0, sizeof(dbcaDBUser));
- memset(dbcaDBPwd, 0, sizeof(dbcaDBPwd));
- if (getenv("DBNAME") == NULL)
- {
- printf("dbname error\n");
- return -1;
- }
- else
- printf("dbname=[%s]\n", getenv("DBNAME"));
- memcpy(dbcaDBName, getenv("DBNAME"),sizeof(dbcaDBName)-1);
- if (getenv("DBUSER") != NULL)
- {
- memcpy(dbcaDBUser, getenv("DBUSER"),sizeof(dbcaDBUser)-1);
- if(getenv("DBPWD") != NULL)
- {
- memcpy(dbcaDBPwd, getenv("DBPWD"),sizeof(dbcaDBPwd)-1);
- }
- }
- EXEC SQL connect to :dbcaDBName user :dbcaDBUser using :dbcaDBPwd;
- printf("connect sqlcode=[%d]\n", sqlca.sqlcode);
- return 0;
- }
復(fù)制代碼 以下是我的makefile:- CC=cc
- DBNAME=topcbos
- INCDIR=/home/db2inst1/sqllib/include
- BINDIR=~machao/TEST
- BNDDIR=$(HOME)/bnd
- LIBDIR=/home/db2inst1/sqllib/lib
- CFLAGS=-I$(INCDIR) -s
- LFLAGS=-L$(LIBDIR) -ldb2
- test=test.o
- all:test clear
- test:$(test)
- $(CC) -O $(LFLAGS) $(test) -o $@
- .SUFFIXES:.sqc
- .sqc.o:
- db2 connect to $(DBNAME) user topcbos using topcbos
- db2 prep $< bindfile
- db2 bind $(BINDDIR)/$*.bnd;
- $(CC) -g -c -O $(CFLAGS) $*.c
- clear:
- -rm *.o
復(fù)制代碼 執(zhí)行結(jié)果是能正確打出環(huán)境變量的數(shù)據(jù)庫名,但sqlcode是-804
即使把代碼中的連接語句寫成 EXEC SQL connect to dbname user dbuser using dbpwd; 也是同樣的報錯
求解,謝謝了 |
|