数据库 proc编程八
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sqlca.h" //普通游标是一条接一条查询数据
//滚动游标是跳跃着查询数据
//注意滚动游标和普通游标定义不同 typedef char ChararrType[]; EXEC SQL BEGIN DECLARE SECTION;
char *serverid="scott/123456@orcl";
EXEC SQL TYPE ChararrType is string();
int ida1;
int idb1;
ChararrType name1;
short name1_ind;
EXEC SQL END DECLARE SECTION; //错误处理升级函数
void sqlerr()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("err reason:%.*s\r\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
} void main()
{
EXEC SQL WHENEVER SQLERROR DO sqlerr();
EXEC SQL connect:serverid ;
printf("connect ok!\r\n");
//1.定义滚动游标
EXEC SQL DECLARE c SCROLL CURSOR FOR
select ida,idb,name from t2;
//2.打开游标
EXEC SQL OPEN c;
//3.滚动提取数据 fetch into
//查询最后一条数据
exec sql fetch last c into :ida1,:idb1,:name1:name1_ind;
if(name1_ind==-)
{
memset(name1,,sizeof(name1));
strcpy(name1,"null");
}
printf("最后一条数据:ida=%d,idb=%d,name=%s\r\n",ida1,idb1,name1);
getchar(); //查询第一条数据
exec sql fetch first c into :ida1,:idb1,:name1:name1_ind;
if(name1_ind==-)
{
memset(name1,,sizeof(name1));
strcpy(name1,"null");
}
printf("第一条数据:ida=%d,idb=%d,name=%s\r\n",ida1,idb1,name1);
getchar(); //查询第3条数据
EXEC SQL FETCH ABSOLUTE c INTO :ida1,:idb1,:name1:name1_ind;
if(name1_ind==-)
{
memset(name1,,sizeof(name1));
strcpy(name1,"null");
}
printf("第3条数据:ida=%d,idb=%d,name=%s\r\n",ida1,idb1,name1);
getchar(); //查询当前游标相对位置是3的数据,(当前行下移3行)
exec sql fetch relative c into :ida1,:idb1,:name1:name1_ind;
if(name1_ind==-)
{
memset(name1,,sizeof(name1));
strcpy(name1,"null");
}
printf("相对位置是3的数据:ida=%d,idb=%d,name=%s\r\n",ida1,idb1,name1);
getchar(); //查询下一条数据
exec sql fetch next c into :ida1,:idb1,:name1:name1_ind;
if(name1_ind==-)
{
memset(name1,,sizeof(name1));
strcpy(name1,"null");
}
printf("下一条数据:ida=%d,idb=%d,name=%s\r\n",ida1,idb1,name1);
getchar(); //查询上一条数据
exec sql fetch prior c into :ida1,:idb1,:name1:name1_ind;
if(name1_ind==-)
{
memset(name1,,sizeof(name1));
strcpy(name1,"null");
}
printf("上一条数据:ida=%d,idb=%d,name=%s\r\n",ida1,idb1,name1); //4.关闭游标
EXEC SQL CLOSE c;
//提交断开连接
EXEC SQL COMMIT RELEASE;
system("pause");
}
数据库 proc编程八的更多相关文章
- 数据库 Proc编程二
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- 数据库 proc编程六
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- 数据库 proc编程五
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- 数据库 proc编程四
错误处理机制 当在Pro*C/C++应用程序中运行SQL语句中,Oracle会将最近执行的SQL语句的状态信息存储到状态变量SQLCODE.SQLSTATE或者SQLCA结构中. 当SQL语句执行成功 ...
- 数据库 proc编程九
第一种动态sql EXEC SQL EXECUTE IMMEDIATE :psql; .仅适用于非select语句 .嵌入SQL语句中不能包含输入宿主变量 void main() { EXEC SQL ...
- 数据库 proc编程七
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- 数据库 proc编程三
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- Oracle Proc编程性能优化经验
Proc 是Oracle提供的一种数据库操作的API.它是基于ESql技术的,需要预编译后才可以变成普通c代码,非常不直观,使用起来不太方便,阅读也存在困难. 因为这些问题导致程序员平时开发中会出现一 ...
- Manual | BSD手册| Linux手册 | 数据库手册 | 编程开发手册 | WEB开发手册 | 软件应用手册 | 网络技术手册 | GNU手册
豆豆手册 □ BSD手册 □ Linux手册 □ 数据库手册 □ 编程开发手册 □ WEB开发手册 □ 软件应用手册 □ 网络技术手册 □ GNU手册 在线手册 首 页 BSD手册 ·FreeBS ...
随机推荐
- oc 类型判断
#import <UIKit/UIKit.h> #import "AppDelegate.h" @interface A : NSObject @end @implem ...
- 转multicast vs broadcast
转自:http://blog.csdn.net/bloghome/article/details/4682984 一.multicast概述: 多媒体应用集成了声音.图形.动画.文本以及视频,这种 ...
- RHEL6.4 多路径绑定
# rpm -qa | grep mapper #查看multipath是否安装 # lsmod | grep dm_multipath #查看multipath模块是否加载 # rpm -ivh | ...
- PLSQL_统计信息系列06_统计信息的历史和日志
20150506 Created By BaoXinjian
- 删除vs中最近的项目的方法
Microsoft Visual Studio中可以自行设置显示多少个最近打开的项目,但有些时候会建个项目做测试,用完了就删了,却总显示在“文件”-“最近的项目”菜单中以及“起始页”-“打开现有项目” ...
- 在windows下部署Redis 当作系统服务器自动启动
部署Redis 其实Redis是可以安装成windows服务的,开机自启动,命令如下: redis-server --service-install redis.windows.conf 安装完之后, ...
- Linux-Ubuntu操作记录
ubuntu 基本命令 1.帮助man --help简单的帮助 如:man tar 或者tar --help help command 较详细的帮助 man comma ...
- Spring里的FactoryBean和BeanFactory有啥区别?
分别看这俩文章就知道了 Spring的FactoryBean使用 Spring加载xml配置文件的方式 ApplicationContext
- Spring Cloud构建微服务架构(四)分布式配置中心(续)
先来回顾一下,在前文中我们完成了什么: 构建了config-server,连接到Git仓库 在Git上创建了一个config-repo目录,用来存储配置信息 构建了config-client,来获取G ...
- [hihoCoder] #1081 : 最短路径·一
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 万圣节的早上,小Hi和小Ho在经历了一个小时的争论后,终于决定了如何度过这样有意义的一天——他们决定去闯鬼屋! 在鬼屋门口 ...