`
liqing6044313
  • 浏览: 37273 次
  • 性别: 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库)
分享到:
评论

相关推荐

    proc*c编程一实例

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

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

    oracle下利用proc在 vc++开发的一个小例子,可以用来扩展其他的应用。

    用ProC开发多线程应用程序

    用Pro*C开发多线程应用程序 (注:本文来自Pro*C/C++ Precompiler Programmer's Guide Release 8.1.5) 如果你的操作系统不支持线程,本文暂不适合你。本文包含以下几个部分: n 什么是多线程?...n 多线程例子

    Ruby中的block、proc、lambda区别总结

    在规则引擎中,Ruby 的闭包使用特别频繁,而且有 block,Proc和 lambda 等后几种形式的用法,很让人困惑。为了深入理解代码,再次认真学习了一下 ...先看一个代码的例子: Example 1: 代码如下: def foo1  yield end

    Oracle数据库Pro*c的实例

    详细说明Pro*c的简单例子的全过程,对于初学ProC的人有一定帮助··

    pro*c程序设计详解

    pro*c程序设计 从概述到基础知识再到例子很清晰的讲解了PROC程序设计

    嵌入式Linux驱动程序设计从入门到精通.part09.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4 Linux...

    边干边学Linux__第二版_doc格式

    12.6 实验一:使用proc文件系统的一个简单例子 12.7 实验二:利用/proc文件系统显示缺页状态 12.8 实验三:seq file使用例子 第13章 内核模块 13.1 什么是内核模块 13.2 模块实现机制 13.3 使用内核模块 13.4 实例 ...

    Ruby中使用Block、Proc、lambda实现闭包

    Ruby中的闭包实现有:Block,Proc,Lambada。 首先,我们来看Block。 代码如下: ary = [1,2,3,4] ary.collect! do |a|  a*a end ary.each do |a|  puts a end 这段代码,我们使用了Array对象的block方法,将ary中...

    嵌入式Linux驱动程序设计从入门到精通.part03.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4...

    masm2c:x86汇编程序(MASM语法)到C转换器

    下面的例子: _DATA segment use16 word public 'DATA' _msg db 'Hello World!',10,13,'$' _DATA ends _TEXT segment use16 word public 'CODE' assume cs:_TEXT,ds:_DATA start proc near sti ; Set The ...

    oracle pro*c入门

    介绍proc的组成,使用等. 如何在c/c++中连接数据库,数据类型,增删改查,使用游标,以及预编译,事务,带参动态sql等内容. 含例子

    嵌入式Linux驱动程序设计从入门到精通.part02.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4...

    ProcInfoExample:使用Proc信息库的示例项目

    procInfoExample 一个简单的Xcode项目,说明如何使用。 使用方法: 下载 在Xcode中构建 跑步 :) 例子: 检索有关进程1337的信息$ ./procInfoExample 1337 ... 有关更多详细信息,请参见Proc Info库

    嵌入式Linux驱动程序设计从入门到精通.part01.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4...

    嵌入式Linux驱动程序设计从入门到精通.part06.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4 Linux...

    嵌入式Linux驱动程序设计从入门到精通.part08.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4 Linux...

    嵌入式Linux驱动程序设计从入门到精通.part07.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4 Linux...

    嵌入式Linux驱动程序设计从入门到精通.part04.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4 Linux...

    嵌入式Linux驱动程序设计从入门到精通.part05.rar

    1) chapters:各章相关的驱动例子代码、相关内核代码 CHA1 第一个驱动与测试程序 CHA2 1 信号量同步 2 阻塞式读写 3 定时器 4 内存映射 5 /proc访问 6 工作队列 CHA3 LED.c LED灯驱动 button.c 键盘驱动 CHA4 Linux...

Global site tag (gtag.js) - Google Analytics