`
liqing6044313
  • 浏览: 37848 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

proc C 的完整小例子

 
阅读更多
/**
简单的procC程序 完整的编译执行过程
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define USERNAME "name" /*用户名*/
#define PASSWD "pwd" /*密码*/
#define DBNAME "dbname" /*数据库名*/
EXEC SQL INCLUDE SQLCA;
void sql_error();
void sql_connect();
EXEC ORACLE OPTION (RELEASE_CURSOR = TURE);
EXEC SQL BEGIN DECLARE SECTION;
/*变量声明*/
char *username=USERNAME;
char *password=PASSWD;
char *dbname=DBNAME;
char *orclname;
char ac_ename[10];
char grade[10];
int id;
int score;
EXEC SQL END DECLARE SECTION;
void sql_error(char *msg) /*错误处理函数*/
{
printf("\n%s,%ld,%s\n", msg,sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK RELEASE;
exit(-1);
}
void sql_connect()
{
printf("begin connect\n");
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbname;
}
int main()
{

EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE ERROR: ");
/*接数据库*/
sql_connect();

EXEC SQL DECLARE name_cursor CURSOR FOR
SELECT ID,NAME,SCORE,GRADE FROM TMP_LQ_TEST; /*测试表 包含id  姓名,分数,评分四列*/
if(sqlca.sqlcode!=0){
printf("查询出错1\n");
return -1;
}
EXEC SQL OPEN name_cursor;/*打开 游标*/
if(sqlca.sqlcode!=0){
printf("查询出错2\n");
return -1;
}
printf("     id     name     score    grade     \n");

while(1){
id=0;
score=0;
memset(ac_ename,0x00,sizeof(ac_ename));
memset(grade,0x00,sizeof(grade));
EXEC SQL FETCH name_cursor into :id,:ac_ename,:score,:grade;
printf("%10d %s %5d %s\n",id,ac_ename,score,grade);
if(sqlca.sqlcode<0)
{
printf("操作数据库错误\n");

exit(-1);
}else if(sqlca.sqlcode==1403){
printf("查询无纪录\n");
exit(-1);
}
}
EXEC SQL CLOSE name_cursor;

EXEC SQL COMMIT WORK RELEASE;
return 0;
}

执行过程:
1,源文件名为proc_test.pc  用proc编译  proc proc_test.pc 生成.lis  .c文件
2,连接gcc -o proc_test proc_test.c /u1/oracle/app/oracle/product/11.2.0/client_1/lib32/libclntsh.sl
(后部分是链接所需要的oracle库)
分享到:
评论

相关推荐

    oracle proc*c设计

    Oracle Proc*C设计是一种在C语言中使用Oracle数据库的接口编程技术。Proc*C是Oracle提供的一种预编译器,它允许开发者直接在C程序中嵌入SQL语句,从而简化了数据库应用程序的开发过程。Proc*C提供了更高效、更直接的...

    proc*c编程一实例

    成功连接oracle10g,在其system账户下有学生表,课程表,成绩表,实现查询一学生的成绩明细。

    c中连接oracle的proc编程

    在C语言中进行Oracle数据库编程,Proc(预编译器)是一种常用的工具,它允许开发者将PL/SQL块嵌入到C程序中,方便地与Oracle数据库交互。以下是对Proc编程的详细介绍,包括测试环境搭建、用户环境变量设置、测试脚本...

    Oracle_ProC.rar_linux oracle_linux proc *c_linux proc oracle_ora

    Oracle ProC是Oracle数据库提供的一种集成的C编程接口,它允许开发者使用C语言来编写存储过程、函数、触发器等数据库对象。在Linux环境下,利用ProC开发Oracle应用,可以充分利用C语言的效率和灵活性,同时享受...

    Oracle数据库PROC编程介绍

    通过一个具体的例子,介绍 PROC 编程的一些经验及应注意的地方。 PROC 编程是 Oracle 数据库提供的一种编程接口,它允许开发者使用 C 语言来编程 Oracle 数据库。在 PROC 编程中,开发者可以使用宿主变量来存储...

    proc文件系统使用举例

    这个例子展示了如何在内核模块中创建一个只读的`proc`文件,并提供了读取数据的回调函数。当用户通过`cat /proc/myproc`时,将看到“Hello, Proc!”。 **四、proc文件系统的应用** `proc`文件系统广泛应用于系统...

    proc个人笔记总结.doc

    在给出的例子中,我们看到了如何编写一个简单的Proc程序,该程序连接到数据库,查询`s_emp`表中id为特定值的`first_name`和`salary`,然后将结果输出到控制台。在Proc++程序中,`begin declare section`和`end ...

    proc教程

    Proc,全称Pro*C,是Oracle公司提供的一种预编译器,它允许开发者在C语言程序中嵌入SQL语句和PL/SQL块,以便更高效地访问和操作Oracle数据库。通过Pro*C,程序员能够结合C语言的面向过程特性与SQL的数据库操作能力,...

    Oracle 11g ProC_C++编程.rar

    Oracle 11g ProC/C++编程是数据库领域中一种高级接口,允许开发人员使用C或C++语言来编写过程化代码,与Oracle数据库进行交互。这种技术在处理复杂业务逻辑、高性能计算以及数据库内存储过程时非常有用。ProC/C++...

    第4章习题参考答案1

    在`main.c`中,变量`x`和`z`以及`main`函数被声明,而在`proc1.c`中,`proc1`函数和变量`x`被定义。当多个源文件中定义了相同的全局变量时,可能出现符号冲突。 1. **符号的强弱性**: - **强符号**:在程序中被...

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

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

    win7下使用oracle11g在VS2008上配置ProC

    - 在“命令”中填写proc.exe的完整路径,如`${oracle_path}\dbhome_1\BIN\proc.exe`。 - 在“参数”中,设置iname为当前选定的.pc文件,oname为转换后的.c文件,例如`$(ItemDir)$(ItemFileName)$(ItemExt)`和`$...

    linux proc PDF

    在这个例子中,`seq_printf` 函数将数据发送到用户空间。 ##### 写入数据 与读取类似,也需要定义一个存储函数(store function),当从用户空间写入数据时被调用。示例: ```c static ssize_t my_proc_store...

    msmmPrj.rar_VC++ ORACLE_oracle_vc oracle_vc oracle 10g proc*c

    描述中提到"oracle下利用proc在vc++开发的一个小例子,可以用来扩展其他的应用",这表明该压缩包包含的源码是一个使用Pro*C库的VC++应用程序,它演示了如何在C++环境中调用Oracle存储过程或函数,以执行数据库操作。...

    proc程序设计之基础编程

    最常见的是Oracle Call Interface (OCI),这是一个C语言的API,允许开发者直接在C或C++代码中嵌入PL/SQL。此外,还有Java Database Connectivity (JDBC) 用于Java应用,Python的cx_Oracle库,以及.NET框架下的Oracle...

    ProC 连接Oracle代码

    在IT行业中,ProC是一种用于在C语言中嵌入PL/SQL的工具,它允许开发者利用C语言的强大功能和Oracle数据库的性能。本篇将详细解释如何使用ProC连接到Oracle数据库,以及涉及的关键概念和技术。 首先,让我们深入理解...

    C语言任务管理器

    在Windows操作系统中,任务管理器是最为熟知的例子,它提供了丰富的信息,如CPU使用率、内存占用、网络活动等。而在编程世界里,尤其是使用C语言时,开发类似的任务管理器是一项挑战,因为C语言并不像高级语言那样...

    TC2.0+TASM+c和汇编混编的例子

    总之,"TC2.0+TASM+c和汇编混编的例子"展示了在DOS时代如何结合C语言的便捷性和汇编语言的高性能,实现高效的程序设计。虽然现代开发环境通常不再依赖这种方式,但了解这种混合编程的方法对于理解计算机系统的工作...

    OracleProc的资料

    Oracle Proc,也称为 Pro*C,是Oracle公司提供的一种预编译器,用于将C语言与SQL和PL/SQL集成,以便在C程序中方便地访问和操作Oracle数据库。这个工具使得开发者可以利用C语言的强大功能,同时享受Oracle数据库提供...

Global site tag (gtag.js) - Google Analytics