Oracle Pro*c到Sybase EsqlC的移植
2007-07-25 08:18
274 查看
[align=center]区别项[/align] | [align=center]Pro*c[/align] | [align=center]Esql/C[/align] |
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 未采用,加入有错误 |
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
相关文章推荐
- 初学者Oracle数据库:Proc和Proc++的使用和示例
- 将mysql 移植到oracle ――第二部分
- oracle移植至mysql相关sql语句
- MySQL数据移植到Oracle中碰到的异常总结一
- 数据库从oracle移植到mysql时需要进行的修改
- 使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g
- SqlServer移植到Oracle
- 关于VMware移植linux后网络无法访问、oracle无法正常连接的解决方案
- 使用hibernate时由mysql移植到oracle上时可能出现的问题
- 关于数据库由DB2移植到Oracle
- 将Access数据库移植到Oracle笔记
- 将Access数据库移植到Oracle笔记
- 将Access数据库移植到Oracle笔记
- 系统从MySQL移植到Oracle的一些简单总结
- Oracle 8.1.6,Windows 2000 Server上安装基于Pro*C 的应用软件:change_on_install口令引起的问题
- 教你快速把握Oracle SQL到DB2 SQL的移植-4
- Linux下Oracle移植数据
- [转贴]Oracle向PostgresQL移植实例
- Linux 环境下Oracle PRO*C程序的编写简单范例
- oracle中pro*c的学习