Pro*C/C++ 学习笔记(一)
2014-01-11 14:05
260 查看
一. Pro*C简介
关键字:Oracle 预编译工具 SQL语句和PLSQL块 高级编程语言Oracle为应用开发人员所提供的许多预编译工具,如Pro*C,Pro*COLBOL,Pro*FORTURN等Pro*系列工具。通过使用这些预编译工具,Oracle允许应用开发人员在高级编程语言中内嵌SQL语句和PLSQL块,从而简化数据库应用程序的开发难度,而其中Pro*C/C++用于在C/C++语言中内嵌SQL语句和PLSQL块。
关键字:OCI Pro*C/C++
使用C/C++开发Oracle应用程序的两种方法:
1. 使用OCI(Oracle Call Interface),开发人员在掌握C/C++语言,SQL语句和PLSQL的同时,还需要掌握Oracle所提供的大量OCI函数。
2. 使用Pro*C/C++,开发人员只需要掌握C/C++语言,SQL语句和PLSQL,Pro*C/C++比OCI更加简单,一般建议使用。
使用Pro*C的开发步骤:
1. 编写pc源程序(包含内嵌SQL和PLSQL块;
2. 使用预编译工具proc将内嵌SQL语句和PLSQL块转换为对Oracle运行库函数(SQLLIB)的调用,同时生成C/C++源代码文件(*.c或者*.cpp);
3. 使用C/C++编译工具编译C/C++源文件,生成目标文件;
4. 使用C/C++链接工具生成可执行文件
生成可执行文件后,开发人员就可以完成最终的开发过程
二. 预编译工具proc使用介绍
语法 proc [OPTION_NAME=value] [OPTION_NAME=value]....其中proc是编译工具,OPTION是预编译选项,使用proc工具有三种方式:
1. 在命令行直接指定预编译选项:
在预编译pc源文件时,至少需要提供iname(指定pc源程序名),parse(指定解析方法)和include(指定头文件位置)三个预编译选项。
示例:proc iname=d:\demo\demo01.pc parse=full include=%ORACLE_HOME%\precomp\public include="c:\Pragram Files\Microsoft Visual Studio\VC98\Include"
ORACLE_HOME为Oracle软件安装路径,在预编译了pc源程序之后,生成C程序,并将内嵌SQL语句转变为对SQLLIB库函数的调用。
2. 使用系统配置文件预编译pc源程序:
当安装Oralce时会自动建立系统配置文件pcscfg.cfg,该文件用来存放常用的预编译选项设置,该文件位置存放在% ORACLE_HOME%\precomp\admin目录中。 在使用命令行方式中,INCLUDE和PARSE是常用的,相对固定的预编译选项,为了简化预编译语法,可以在pcscfg.cfg文件中配置这两个选项。示例:
define=(WIN32_LEAN_AND_MEAN)
parse=full
include=%oracle_home%\precom\public
include=%roacle_home%oci\include
include="c:\Pragram Files\Microsoft Visual Studio\VC98\Include"
配置文件之后,在可以简化命令行命令:proc iname=d:\demo\demo01.pc
3. 使用用户配置预编译pc源程序:
user.cfg用户配置文件也可以存放预编译选项及其设置。
define=(WIN32_LEAN_AND_MEAN)
parse=full
include=%oracle_home%\precom\public
include="c:\Pragram Files\Microsoft Visual Studio\VC98\Include"
编写好用户配置文件后,如果要使用该配置文件,那么需要在命令行指定config选项。
示例:proc iname=d:\demo\demo01.pc config=d:\demo\user.cfg
相关文章推荐
- Beginning C++ Through Game Progamming 全书学习笔记
- Pro visual c++/cli and .net 2.0 platform2 学习笔记(9第三章 面向对象的C++/CLI==2)
- Pro visual c++/cli and .net 2.0 platform2 学习笔记(10 第四章 高级C++/CLI)
- C++学习笔记-类的继承(派生类)
- C++ 学习笔记
- 【C++ 学习笔记】 变量转换
- C++学习笔记8 - 函数探幽
- C++学习笔记——标准库类型vector(1)
- 2012年3月10日C++学习笔记
- C++基础学习笔记----第一课补充(符号表)
- Effective C++ 学习笔记(24)
- Exceptional C++ Syle 学习笔记
- 【菜鸟C++学习笔记】16.地址和指针
- C++网上学习笔记
- C++学习笔记一
- C++学习笔记十七 - 简单的类型强制转换
- C++反汇编学习笔记7——数组和指针以及他们的寻址
- 学习笔记之深入浅出MFC 第8章 C++重要性质---构造函数与析构函数
- C++学习笔记--复制构造函数
- c++ 动态绑定(c++学习笔记)