`

(转)什么是Pro*C/C++

阅读更多

http://blog.csdn.net/hwz119/archive/2007/07/11/1685905.aspx

什么是Pro*C/C++ 收藏

ORACLE支持几种高级语言中内嵌入SQL语句,或ORACLE库函数调用来访问数据库。它们是C,COBOL,Ada,PASCAL,PL/I等,这些语言称之为宿主语言,用它们开发的程序就称为PRO* 程序,如PRO*C,PRO*COBOL等。
PROC在ORACLE的客户端软件中就有,安装oracle时选上即可。

1.什么是Pro*C/C++
 通过在过程化编程语言C/C++中嵌入SQL语句而开发出的应用程序.
2.简要说明:
 在通用编程语言中使用的SQL称为嵌入式SQL.目的是Pro*C/C++将使 C/C++成为访问数据库的工具.

在ORACLE数据库管理和系统中, 有三种访问数据库的方法;

(1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;

(2)用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*Froms,QL*Reportwriter,SQL*Menu等;

(3) 利用在第三代语言内嵌入的SQL语言或ORACLE库函数调用来访问。

Pro*C就属于第三种开发工具之一, 它把过程化语言C和非过程化语言SQL最完善地结合起来,具有完备的过程处理能力,又能完成任何数据库的处理品任务,使用户可以通过编程完成各种类型的报表。

在Pro*C程序中可以嵌入SQL语言,利用这些SQL语言可以完成动态地建立、修改和删除数据库中的表,也可以查询、插入、修改和删除数据库表中的行, 还可以实现事务的提交和回滚。

在Pro*C程序中还可以嵌入PL/SQL块, 以改进应用程序的性能, 特别是在网络环境下,可以减少网络传输和处理的总开销。

2.Pro*C的程序结构图通俗来说,Pro*C程序实际是内嵌有SQL语句或PL/SQL块的C程序, 因此它的组成很类似C程序

ORACLE 8.16 FOR RHLINUX6.2的PRO*C环境

1、PRO*C:

ORACLE数据库作为数据库产品中的佼佼者,应用十分广泛,随着对其应用的深入,使用ORACLE和C来编制应用系统成为许多系统的选择,而ORACLE和C语言的接口知识成为应该掌握的和十分有用的。

PRO*C是ORACLE的预编译器是一种编程工具,通过它把SQL语句嵌入到C语言程序中。如图:

预编译器把源程序作为输入,然后翻译程序中嵌入的 SQL语句,把它们转化成对标准的ORACLE运行库的调用,最后生成一个修改过的源程序。通过对修改过的源程序进行编译、链接,形成可执行文件。

2、环境配置:

A、说明:

ORACLE预编译器在ORACLE 8I安装时是默认或选择安装的,安装了PRO*C,则在$ORACLE_HOME/bin路径下就有了可执行程序PROC,以及相应的未经配置预编译环境。为使PRO*C预编译器能工作我们还必须对环境做一些配置。

ORACLE的PRO*C是对预编译器的选项值的改变来配置环境的。预编译指令基本格式如下:

Proc 选项名=选项值 源文件

也可把选项值的改变放到CONFIG指定的文件中做。

PROC的选项

auto_connect

允许自动连接到 ops$ 帐号

char_map

正在映射字符数组和字符串

Close_on_commit

关闭所有 COMMIT 游标

codekr_c

将要生成的代码类型

Comp_charset

C 编译器支持的字符集类型

Config

用另一配置文件覆盖系统配置文件

Cpp_suffix

覆盖缺省的 C++ 文件名后缀

dbmsnative

兼容模式

Def_sqlcode

生成 '#define SQLCODE sqlca.sqlcode' 宏

Define

定义预处理器符号

Durationtransaction

设置高速缓存中对象的 pin 持续时间

Dynamic

指定 Oracle 或 ANSI 动态 SQL 语义

Errors

是否将错误消息发送到终端

Errtype

输入文件的列表文件名称错误

Fips

ANSI 的 FIPS 标志不符合用法

Header

为预编译标题指定文件扩展名

hold_cursor

在游标高速缓存中控制游标保留

iname

输入文件的名称

Include

包括文件的目录路径

Intype

有关类型信息的输入文件名称

Lines

将 #line 指令添加到生成的代码中

Lname

覆盖缺省列表文件名

Ltype

列表文件中生成的数据量

maxliteral

生成的文字串的最大长度

maxopencursors

高速缓存的开放游标的最大数量

mode

代码符合 Oracle 或 ANSI 规则

Nls_char

指定国家语言字符变量

Nls_local

控制 NLS 字符语义的实现方法

Objects

支持对象类型

oname

输出文件名

oraca

控制 ORACA 的使用

Pagelen

列表文件页面长度

parse

控制进行语法分析的非 SQL 代码

prefetch

游标 OPEN 期间预读取的行数

Release_cursor

控制从游标高速缓存中释放游标

Select_error

控制选择标记错误

sqlcheck

编译时间 SQL 校验总量

Sys_include

系统标题文件所在目录

Threads

指示多线程应用程序

type_code

将 Oracle 或 ANSI 类型代码用于动态 SQL

Unsafe_null

允许在没有指示变量的情况下进行> NULL 读取

Userid

用户名/口令 [@dbname] 连接串

Varchar

允许使用隐式 varchar 结构

Version

将要返回的对象版本

 

大部分选项我们都可以用默认值,但其中有几个选项是需要配置的。

l CONFIG:指定PROC的CONFIG文件。PROC默认配置文件为$ORACLE_HOME/precomp/admin/pcscfg.cfg,我们可以编辑我们要使用的CONFIG文件。

l INCLUDE:包括文件的目录路径,一般在CONFIG文件中配置,pcscfg.cfg中有默认定义。

l SYS_INCLUDE:系统头文件所在目录,一般在CONFIG文件中配置,pcscfg.cfg中有默认定义。但要注意可能默认的系统头文件的路径不对。如 
sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include)

lUSERID:用户名/口令 [@dbname] 连接串

B、配置:

配置工作比较简单,只要将默认的>CONFIG文件COPY到源程序所在的路径下,修改其中的USERID。

使用如下命令对PROC源文件进行预编译,输出相应的C源程序。

Proc config=myconfg.cfg iname=myprog.pc oname=myprog.c

PRO*C将对INAME指定的PROC源文件进行预编译,输出ONAME指定的文件。

3、联编环境:

预编译只是将PROC源文预编译成C源文件,而要将不同源文件编译生成的目标文件联编,则要指定联编所需要的LIBRARY,ORACLE接口程序(PROC程序)需要的the client shared library分布在许多路径下,为联编方便,ORACLE提供了$ORACLE_HOME/precomp/demo/proc/demo_proc.mk文件。

使用如下命令:

make–f demo_proc.mk OBJS=”myporg.o mydb.o” EXE=myprog.e build

 

分享到:
评论

相关推荐

    Oracle9iPro*C/C++编程指南源码

    Oracle9i Pro*C/C++编程指南源码是一个深入学习Oracle数据库与C/C++结合编程的重要资源,它提供了丰富的示例代码和实践指导,帮助开发者掌握如何利用Pro*C/C++工具进行数据库应用程序开发。Pro*C/C++是Oracle公司...

    《精通Oracle 10g Pro*C/C++编程》源代码与学习笔记

    《精通Oracle 10g Pro*C/C++编程》是一本专为数据库开发人员设计的教程,作者王海亮和张立民通过这本书深入探讨了如何使用C或C++语言与Oracle 10g数据库进行高效交互。源代码与学习笔记的提供,为读者提供了实践操作...

    Pro*C/C++ 编程

    1.1 **Pro*C/C++ 是什么** Pro*C/C++ 是Oracle公司提供的一个工具,它将C或C++语言与Oracle数据库的PL/SQL语言相结合。通过预处理,Pro*C/C++ 将PL/SQL块转换为C或C++函数调用,然后可以使用标准的C/C++编译器进行...

    Pro*C/C++ Programmer’s Guide, 10g Release 2 (10.2)

    根据提供的文档信息,我们可以深入探讨Pro*C/C++ Programmer’s Guide, 10g Release 2 (10.2)中的核心知识点。这份文档是Oracle针对使用C和C++语言编程时与Oracle数据库交互的技术指南。 ### 一、Pro*C/C++简介 ...

    Pro*C/C++Precompiler Programmer’s Guide

    The Pro*C/C++ Programmer's Guide is intended for programmers, systems analysts, project managers, and other Oracle users who perform, or are interested in learning about, the following tasks: ...

    Pro*C/C++ Precompiler Programmer’s Guide

    Pro*C/C++ Precompiler Programmer’s Guide 本指南旨在为 Pro*C/C++ 预编译器程序员提供详细的指导和参考信息,以帮助他们更好地理解和使用 Pro*C/C++ 预编译器。下面是本指南中所涵盖的关键知识点: 1. Pro*C/...

    Oracle 11g Pro*C/C++ 编程艺术中文版

    本书为应用开发人员提供了使用Pro*C/C++开发数据库应用的方法。针对各种不同类型的Pro*C/C++应用,本书都提供了非常详细、具体的开发方法,并且为读者提供了大量的示例程序。本书不仅介绍了各种类型Pro*C/C++应用的...

    使用Pro*C/C++ 开发嵌入式SQL程序

    为了方便C/C++程序员与Oracle数据库交互,Oracle提供了Pro*C/C++工具,它允许开发者直接在C/C++代码中嵌入SQL语句,实现了数据库操作的高效集成。本篇文章将深入探讨“使用Pro*C/C++开发嵌入式SQL程序”的相关知识点...

    Oracle 11g Pro C/C++编程艺术

    ### Oracle 11g Pro C/C++编程艺术 #### 一、Oracle 11g简介 Oracle 11g是Oracle公司推出的一款功能强大的关系型数据库管理系统(RDBMS)。它不仅提供了高度可靠的数据存储解决方案,还具备了高级的数据处理能力和...

    Pro*C/C++ Precompiler Getting Started Release 8.1.6 for Window

    《Pro*C/C++预编译器入门指南 8.1.6 for Windows》是Oracle公司为开发者提供的一份关于在Windows环境下使用Pro*C/C++工具的起步教程。这份文档主要涵盖了如何利用C++语言与Oracle数据库进行交互的预编译技术,旨在...

    Pro*C/C++ Programmer's Guide 11g Release 2 (11.2)-778

    3. **C++支持**:虽然Pro*C主要针对C语言,但该指南也涵盖了C++的使用,允许开发者利用C++的面向对象特性来构建更复杂的数据库应用。 4. **版权与许可证**:Oracle公司保留所有权利,并规定了软件使用、复制、修改...

    Oracle.11g.Pro﹡C.C.编程艺术

    《Oracle 11g Pro*C/C++编程艺术》是一本专注于指导开发者如何使用Pro*C/C++技术来开发Oracle数据库应用程序的专著。它不仅为应用开发人员提供了Pro*C/C++的基础知识,还详细阐述了该技术在不同应用场景下的具体应用...

    Oracle Pro *C/C++ 和OCI 最详细的教程

    Oracle Pro*C/C++是一种将SQL语句嵌入到C或C++语言中的预编译器技术,而OCI(Oracle Call Interface)是一个提供接口让开发人员能使用C语言直接与Oracle数据库交互的编程库。本教程将详细介绍这两种技术的基本概念和...

    ProC/C++学习

    1.1、Pro*C/C++是什么 Pro*C/C++是Oracle公司推出的一个开发工具,专门用于将C/C++代码中的SQL语句转换为可执行的SQL语句。它可以将SQL语句嵌入到C/C++代码中,从而实现了高效的数据库交互。 1.2、Pro*C/C++处理...

    Pro C/C++ Precompiler Programmer's Guide

    根据提供的文件信息,我们可以深入探讨《Pro C/C++ 预编译器程序员指南》(以下简称“指南”)的关键知识点。这份文档是针对 Oracle 的 Pro*C/C++ 预编译器开发人员编写的权威指南,它包含了重要的编程概念、实践和...

    ProCC++ Programmer's Guide Release 9.2.pdf

    根据提供的文档信息,我们可以得出这份文档是关于 Oracle Pro*C/C++ Programmer's Guide 的 Release 9.2 版本。此版本发布于2003年12月,并且明确指出包含软件及其文档均受到版权保护,并附有使用限制。下面我们将...

    Oracle 11g ProC_C++编程艺术 源代码

    Oracle 11g ProC/C++编程艺术是关于在Oracle数据库环境下使用Pro*C/C++进行应用开发的专业书籍。源代码提供了书中的实例和示例,帮助读者深入理解并实践相关技术。以下是关于Oracle 11g ProC/C++编程的一些核心知识...

    linux下c/c++连oracle数据库技术pro*c

    Pro*C是Oracle公司提供的一种预编译器,它允许C或C++程序直接调用PL/SQL代码,极大地简化了数据库操作。本篇文章将详细探讨Linux下使用C/C++和Pro*C连接Oracle数据库的技术细节。 1. **Pro*C介绍**: Pro*C是...

    ProC-C++编程指南目录

    - 解释Pro*C/C++的概念,它是Oracle为C/C++程序员提供的预处理器,用于在C/C++程序中嵌入SQL语句。 - 描述Pro*C/C++如何通过预处理步骤将SQL语句转换为C/C++代码,从而实现数据库操作。 #### 1.3 Pro*C/C++ 8.0版本...

    ProCC++(英文版).pdf

    1. **什么是Pro*C/C++?** - 定义 - 基本原理 - 使用场景 2. **特点** - 集成性 - 性能优势 - 跨平台支持 - API介绍 - 安全性 3. **限制** - 学习难度 - 兼容性问题 - 调试挑战 4. **安装与配置** - ...

Global site tag (gtag.js) - Google Analytics