proc 编程学习

proc 编程学习

ID:41037318

大小:392.50 KB

页数:40页

时间:2019-08-14

proc 编程学习_第1页
proc 编程学习_第2页
proc 编程学习_第3页
proc 编程学习_第4页
proc 编程学习_第5页
资源描述:

《proc 编程学习》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、3.Pro*C编程Oracle的Pro*C预编译器是一个可以让你在C语言源程序中嵌入SQL语句的编程工具。Pro*C预编译器在预编译过程中,将嵌入的SQL语句转换成对标准Oracle运行库的调用,从而生成预编译过的源代码,然后再进行通常的编译、连接后就可以运行了。OraclePro*c预编译器使我们可以在应用程序中使用强大灵活的SQL,通过这个接口,我们就可以用我们的C语言程序直接访问Oracle数据库。用Pro*c编程分为三步:(1)首先建立后缀名为.pc的内嵌SQL语句的C源程序文件;$vistu.pc(2)对源程序stu.pc进行预编译,生成

2、单纯的C源程序stu.c$procPARSE=NONEstu.pc(3)编译该C程序,并加入Oracle的客户端动态链接库,生成可执行文件stu$gcc–ostustu.c$ORACLE_HOME/lib/libclntsh.so以下是stu.pc的源程序,该程序的功能是根据用户输入的ID号,查询student表中学生的姓名和成绩。  #includeEXECSQLINCLUDESQLCA;voidmain(){ /*声明宿主变量*/ EXECSQLBEGINDECLARESECTION; VARCHARusr[20],pass[

3、20],serv[20]; charname[8]; intid,score; EXECSQLENDDECLARESECTION; /*设置连接数据库的用户名、密码和数据库服务名*/ strcpy(usr.arr,"test"); usr.len=(unsignedshort)strlen((char*)usr.arr); strcpy(pass.arr,"test"); pass.len=(unsignedshort)strlen((char*)pass.arr); strcpy(serv.arr,"MyDB"); serv.len=(unsig

4、nedshort)strlen((char*)serv.arr); /*以test用户连接数据库*/ EXECSQLCONNECT:usrIDENTIFIEDBY:passUSING:serv; printf("Connect!"); /*用户输入欲查询的ID号*/ printf("请输入学生代码:"); scanf("%d",&id); /*执行动态的SQL查询语句*/ EXECSQLSELECTid,name,scoreinto:id, :name,:scorefromstudentwhereid=:id; printf("Name=%s 

5、  Score=%d",name,score); /*提交事务并断开与数据库的连接*/EXECSQLCOMMITWORKRELEASE; printf("Disconnect!");}  在Pro*C中遍历数据表中每一条记录的方法是通过声明游标来实现的,下面的例程stu2.pc便是一个使用游标的例子,其功能是显示student表中的每一条记录。  #includeEXECSQLINCLUDESQLCA;voidmain(){ /*声明宿主变量*/ EXECSQLBEGINDECLARESECTION; VARCHARusr

6、[20],pass[20],serv[20]; charname[8]; intid,score; EXECSQLENDDECLARESECTION; /*设置连接数据库的用户名、密码和数据库服务名*/ strcpy(usr.arr,"test"); usr.len=(unsignedshort)strlen((char*)usr.arr); strcpy(pass.arr,"test"); pass.len=(unsignedshort)strlen((char*)pass.arr); strcpy(serv.arr,"MyDB"); serv.

7、len=(unsignedshort)strlen((char*)serv.arr); /*以test用户连接数据库*/ EXECSQLCONNECT:usrIDENTIFIEDBY:passUSING:serv; printf("Connect!"); /*声明游标*/ EXECSQLDECLAREstu_cursorCURSORFOR SELECTid,name,scorefromstudent; printf("DECLARECURSOROK!"); /*打开游标*/ EXECSQLOPEN stu_cursor; printf("O

8、PENCURSOROK!"); /*错误处理*/ EXECSQLWHENEVERNOTFOUNDDObreak; /*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。