区别项
|
Pro*c
|
Esql/C
|
SQL函数
|
NUL()
|
ISNULL(),注意类型需一致
|
SQL函数
|
DECODE()
|
CASE… WHEN…ELSE…END
|
数据类型
|
VARCHAR,该类型是一个结构,包括arr和len两个成员,使用范例:
db_vString.arr[db_vString.len]='/0';
db_vString.len =strlen((char*)db_vString.arr);
|
CS_CHAR类似c中的char类型,但不自动补齐’/0’,较char类型节省空间
|
SQLCODE返回值
|
1403为无记录
|
100为无记录
|
SQL语句
|
|
唯一标识的语法加入distinct报错误
|
错误处理
|
未采用
|
EXEC SQL WHENEVER sqlerror
EXEC SQL WHENEVER sqlwarning
EXEC SQL WHENEVER not found
未采用,加入有错误
|
MakefiOracle makefile:
SETUPDIR=
CC
= gcc
TARGETDIR =
TESTDIR =
PUBDIR =
SRCDIR =
OBJDIR =
CFLAGS = -I $(OBJDIR) -I $(PUBDIR) -lm
#for 64bit
#CFLAGS = -I $(OBJDIR) -I $(PUBDIR) -lm -m64
ORALIBS= -I ${ORACLE_HOME}/precomp/public -I. -I${ORACLE_HOME}/rdbms/public -I${ORACLE_HOME}/rdbms/demo -I${ORACLE_HOME}/plsql/public -I${ORACLE_HOME}/network/public -L${ORACLE_HOME}/lib/ -lclntsh
PCFLAGS= include=$(SRCDIR) include=$(PUBDIR) include=/usr/i386-glibc-2.1-linux/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include
all:
$(OBJDIR) $(TARGETDIR)/ConfigChg
$(OBJDIR):
-mkdir -p $(OBJDIR)
clean:
-rm -rf $(OBJDIR)
-rm -f $(TARGETDIR)/ConfigChg
$(TARGETDIR)/ConfigChg: $(OBJDIR)/PubFunc.o $(OBJDIR)/ConfigChg.o
$(CC) -o $@ $(CFLAGS) $(ORALIBS) $(OBJDIR)/PubFunc.o $(OBJDIR)/ConfigChg.o
#pc compile
$(OBJDIR)/ConfigChg.o : $(SRCDIR)/ConfigChg.pc
proc parse=no iname=$(SRCDIR)/ConfigChg.pc oname=$(SRCDIR)/ConfigChg.c $(PCFLAGS)
$(CC) -c -o $@ $(CFLAGS) $(ORALIBS) $(SRCDIR)/ConfigChg.c
$(OBJDIR)/PubFunc.o : $(PUBDIR)/PubFunc.pc
proc parse=no iname=$(PUBDIR)/PubFunc.pc oname=$(PUBDIR)/PubFunc.c $(PCFLAGS)
$(CC) -c -o $@ $(CFLAGS) $(ORALIBS) $(PUBDIR)/PubFunc.c
Sybase Makefile:
SETUPDIR=
CC
= gcc -g
TARGETDIR =
TESTDIR =
PUBDIR =
SRCDIR =
OBJDIR =
RELDIR
= $(SYBASE)/$(SYBASE_OCS)
# Sybase include directory
INCDIR
= $(RELDIR)/include
#
# Modify the following line to use debug/nondebug libraries
#
#LIBDIR
= $(RELDIR)/devlib
LIBDIR
= $(RELDIR)/lib
# Specify the include and library search paths for the compiler
INCLUDE
= -I. -I$(INCDIR) -I$(PUBDIR)
LIBPATH
= -L$(LIBDIR)
PRECOMP
= $(RELDIR)/bin/cpre
SYBLIBSCT
= -lsybct
SYBLIBS
= -lsybtcl -lsybcs -lsybcomn -lsybintl -lsybunic
SYSLIBS
= -B dynamic -lsocket -lnsl -ldl -lm
all:
$(OBJDIR) $(TARGETDIR)/ConfigChg
$(OBJDIR):
-mkdir -p $(OBJDIR)
clean:
-rm -rf $(OBJDIR)
-rm -f $(TARGETDIR)/ConfigChg
-rm -f $(PUBDIR)/PubFunc.c
$(TARGETDIR)/ConfigChg: $(OBJDIR)/PubFunc.o $(OBJDIR)/ConfigChg.o
@ printf "$(CC) $(OBJDIR)/PubFunc.o $(OBJDIR)/ConfigChg.o $(INCDIR)/sybesql.c $(INCLUDE) $(LIBPATH) $(SYBLIBSCT) $(SYBLIBS) $(SYSLIBS) -o $@/n";
$(CC) $(OBJDIR)/PubFunc.o $(OBJDIR)/ConfigChg.o $(INCDIR)/sybesql.c $(INCLUDE) $(LIBPATH) $(SYBLIBSCT) $(SYBLIBS) $(SYSLIBS) -o $@
#pc compile
$(OBJDIR)/ConfigChg.o : $(SRCDIR)/ConfigChg.c
@ printf "$(CC) $(INCLUDE) -c -o $@ $(SRCDIR)/ConfigChg.c/n";
@ $(CC) $(INCLUDE) -c -o $@ $(SRCDIR)/ConfigChg.c
$(SRCDIR)/ConfigChg.c :
$(SRCDIR)/ConfigChg.cp
@ printf "$(PRECOMP) -O $@ $(SRCDIR)/ConfigChg.cp/n";
@ $(PRECOMP) -O $@ $(SRCDIR)/ConfigChg.cp
$(OBJDIR)/PubFunc.o : $(PUBDIR)/PubFunc.c
@ printf "$(CC) $(INCLUDE) -c -o $@ $(PUBDIR)/PubFunc.c/n";
@ $(CC) $(INCLUDE) -c -o $@ $(PUBDIR)/PubFunc.c
$(PUBDIR)/PubFunc.c:
$(PUBDIR)/PubFunc.cp
@ printf "$(PRECOMP) -O $@ $(PUBDIR)/PubFunc.cp/n";
@ $(PRECOMP) -O $@ $(PUBDIR)/PubFunc.cp