- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式编程Proc 思想
第一步:理解需求,确定需求思路。
第二步:理解嵌入式编程Pro*c编程,弄清楚什么是Pro*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 选项名=选项值 源文件
第三步:Pro*c编程基本可分为如下步骤:
1、首先建立后缀名为.pc的内嵌SQL语句的C源程序文件;
$vi foo.pc
2、对源程序stu.pc进行预编译,生成单纯的C源程序foo.c;
$proc PARSE=NONE foo.pc
3、编译该C程序,并加入Oracle的客户端动态链接库,生成可执行文件foo;
$gcc –o foo foo.c $ORACLE_HOME/lib/libclntsh.so
4、执行并测试foo 文件 (如果测试有问题,则返回到步骤1). 例子程序foo.pc(选取scott.emp表
相关内容,并格式化打印出来):
第四步:根据需求调试程序foo.pc。
#include stdio.h
EXEC SQL INCLUDE SQLCA;
int main()
{
printf(start.......... \n );
EXEC SQL BEGIN DECLARE SECTION;//开始声明数据库变量
int empno;
char fname[20];
char lname;
VARCHAR user[20],pass[20],tnsname[20];
EXEC SQL END DECLARE SECTION;//声明结束
strcpy(user.arr,bill);
user.len=(unsigned short)strlen((char *)user.arr);
strcpy(pass.arr,billapp);
pass.len=(unsigned short)strlen((ch
原创力文档


文档评论(0)