RedHatAS4下,用c语言操作oracle10g,不知道如何访问,以前见到有人说用proc但是,企业版安装后没有proc的demo,安装选项里的示例方案选项不可用无法安装。c访问oracle,proc这两方面谁能给指点迷津,多谢了,指个方向,提供点资料,网站都不胜感激。

解决方案 »

  1.   

    OCI或者proc,参考官方文档tahiti.oracle.com
      

  2.   

    OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++操控关系数据库的模板库,最新版本4.0.104,参见http://otl.sourceforge.net/,下载地址http://otl.sourceforge.net/otlv4_h.zip。
    优点:a. 跨平台
          b. 运行效率高,与C语言直接调用API相当
          c. 开发效率高,起码比ADO.net使用起来更简单,更简洁
          d. 部署容易,不需要ADO组件,不需要.net framework 等
    缺点:
          a. 只有C++才可以使用她
          b. 说明以及范例不足(暂时性的)
      

  3.   

    给你一个proc程序使用的makefile的例子吧#****************************************************************************
    #oracle为64位
    include $(ORACLE_HOME)/precomp/lib/env_precomp.mk  
    #****************************************************************************USERID=dbusr/dbusr
    BIN_PATH=$(HOME)/bin
    PROCX=$(ORACLE_HOME)/bin/proc
    CC=cc
    COPY=cp
    MV=mvORCL_FLAG = dbms=v7 mode=oracle              \
    sys_include=/usr/include  \
    include=$(ORACLE_HOME)/precomp/public \
    include=$(ORACLE_HOME)/precomp/lib \
    sqlcheck=full   userid=$(USERID)
    #****************************************************************************
    #oracle为64位
    LIB_PATH  = -L/usr/lib -L$(ORACLE_HOME)/lib
    #****************************************************************************
    #LIB_PATH  = -L/usr/lib -L$(ORACLE_HOME)/lib32INCL_PATH =  -I /usr/include                  \
    -I $(ORACLE_HOME)/precomp/public
    #****************************************************************************
    #对C进行32位编译
    #****************************************************************************
    #CC_FLAG   = -g $(INCL_PATH) $(LIB_PATH)  $(PROLDLIBS) #****************************************************************************
    ##对C进行64位编译 AIX
    CC_FLAG   = -q64 -g $(INCL_PATH) $(LIB_PATH)  $(PROLDLIBS) 
    #################################################################################
    .SUFFIXES: .pc .c .o
    .pc.o: 
    @$(PROCX) $(ORCL_FLAG) iname=$*.pc 
    $(CC) -c $(CC_FLAG) $*.c.c.o:
    $(CC) -c $(CC_FLAG) $*.c