ProCC编程
Pro*C/C++ 编程
Pro*C/C++ 编程1
一、Pro*C/C++ 简介1
1.1、Pro*C/C++ 是什么1
1.2、Pro*C/C++ 处理流程2
二、Pro*C/C++ GCC 环境配置3
2.1、Pro*C/C++ 预编译环境3
2.2、GCC 编译器5
三、开始编写第一个Pro*C++代码5
3.1、第一个Pro*C++代码5
3.2、Pro*C++代码预编译6
3.3、GCC 编译7
3.4、最后测试8
四、复杂一些的Pro*C/C++代码8
4.1、代码部分8
4.2、代码编译12
4.3、代码测试14
一、Pro*C/C++ 简介
1.1、Pro*C/C++ 是什么
为了用户开发Oracle应用程序, Oracle提供了一套Oracle调用规范, 即Oracle Call Interface (OCI),但是比较难以掌握使用, 对于熟悉 C/C++ 的用户要编写Oracle应用程序, 还需要花很多时间去研究 OCI, 因此 Oracle 推出了一个在 C/C++ 代码中直接嵌入 SQL 的方法, 然后通过 Oracle 提供的预编译程序, 编译成SQLLIB的调用, 这就是 Pro*C/C++。
注意, SQLLIB 与 OCI 是不同的, SQLLIB 主要是保含一系列函数的Oracle 应用程序运行库,用于应用程序执行或预编译时调用,其本身并不是Oracle 标准接口API,随着Oracle 版本的变化SQLLIB 的函数调用格式、用法、参数等也有可能变化。如果一个项目中需要一个比较通用的、平台一致性好的、不随数据库版本变化而变化的一系列封装函数,最好的建议是使用Oracle Call Interface (OCI) 进行标准C 语言的编程处理。
1.2、Pro*C/C++ 处理流程
C/C++ 源代码 =? 源代码中嵌入SQL =? 通过 Pro*C 预编译命令产生新的源代码
=? 通过正常的C/C++编译器编译连接应用程序 =? 运行应用程序
二、Pro*C/C++ GCC 环境配置
2.1、Pro*C/C++ 预编译环境
当您安装 Oracle 数据库产品的时候,Pro*C/C++的预编译环境缺省就为我们安装好了,我们这里以安装 Oracle 10G 版本为例. 在 Oracle_Home的 Bin 目录下, 您可以找到预编译程序 proc.exe, 这个就是用来预编译您有在C/C++代码中嵌入SQL的文件的. 该编译程序用到了 Oracle_Home下的precomp\public 目录中的 .h 头文件, 在正真编译生成可执行文件时又会用到 precomp\lib 的一个 .lib 库文件.
我们进入 command 窗口,看看 proc 编译命名的参数:
Pro*C/C++编译命令参数(10G)
C:\oracle\product\10.2.0\db_2\BIN>proc
Pro*C/C++: Release .0 - Production on Mon Feb 23 16:22:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
System default option values taken from: C:\oracle\product\10.2.0\db_2\precomp\admin\pcscfg.cfg
Option Name Current Value Description
auto_connect no Allow automatic connection to ops$ account
char_map charz Mapping of character arrays and strings
close_on_commit no Close all cursors on COMMIT
cmax 100 CMAX Value for connection pool
cmin 2 CMIN Value for connection pool
cincr 1 CINCR Value for connection pool
ctimeout 0 CTIMEOUT Value for connection pool
cnowait 0 CNOWAIT Valu