oracle库函数 sqlcxt,ProCC+++编程.doc

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值