Oracle Pro*c到Sybase EsqlC的移植

区别项
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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、 ESQL/C资料(完全版)一 第一节 什么是嵌入SQL语言?3 1.1 嵌入SQL程序的组成元素3 1.2 什么是静态SQL和动态SQL?4 1.3 什么是SQLCA?4 1.4 什么是SQLDA?5 第二节 SYBASE SQL SERVER嵌入式SQL语言5 2.1 一个嵌入SQL语言的简单例子5 2.2 嵌入SQL的处理过程6 2.3 嵌入SQL语句总览7 2.3.1 宿主变量7 2.3.2 连接数据库12 2.3.3 数据的查询和修改13 2.3.4 游标的使用13 2.3.5 SQLCA15 2.3.6 WHENEVER16 2.3.7 批处理18 2.3.8 事务18 2.4动态SQL语句18 2.4 .1 动态修改19 2.4.2 动态游标20 2.4.3 SQLDA23 2.4.4 DESCRIBE语句27 2.5 两个例子程序27 2.5.1 TELECOM程序27 2.5.2 ADHOC程序29 第三节 IBM DB2嵌入SQL语言35 3.1 一个简单示例35 3.2 嵌入SQL语句37 3.2.1宿主变量37 3.2.2单行查询39 3.2.3多行查询39 3.2.4插入、删除和修改操作40 3.2.5 SQLCA43 3.2.6事务45 3.3 DB2的嵌入SQL程序处理过程46 3.4 DB2的动态SQL嵌入语句53 3.4.1 基本方法53 3.4.2 动态游标55 3.4.3 SQLDA55 第四节 ORACLE数据库的嵌入SQL语言66 4.1 基本的SQL语句66 4.1.1宿主变量和指示符66 4.1.2 查询68 4.1.3 修改数据68 4.1.4 游标68 4.2 嵌入PL/SQL71 4.3 动态SQL语句72 4.3.1 ORACLE动态SQL语句的一些特点72 4.3.2 使用动态SQL的四种方法72 4.3.3 SQLDA75 第五节INFORMIX的嵌入SQL/C语言89 5.1 一个简单的入门例子89 5.2 宿主变量91 5.3 嵌入SQL的处理过程96 5.4 动态SQL语言96 5.4.1 SQLDA97 第六节MICROSOFT SQL SERVER7嵌入式SQL语言105 6.1 一个嵌入SQL语言的简单例子105 6.2 嵌入SQL的处理过程106 6.3 嵌入SQL语句112 6.3.1 声明嵌入SQL语句中使用的C变量112 6.3.2 连接数据库115 6.3.3 数据的查询和修改115 6.3.4 游标的使用116 6.3.5 SQLCA117 6.3.6 WHENEVER118 6.4动态SQL语句119 6.4 .1 动态修改119 6.4.2 动态游标120 6.4.3 SQLDA122 6.4.4 DESCRIBE语句130 6.5 API130 第六章 嵌入式SQL(E-SQL)简介
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值