数据库 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 ...
随机推荐
- bash 基本功能
1 shell概述 shell是一个命令解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序.用户可以用shell启动.挂起.停止甚至是编写一些程序. shell是一个功能强大 ...
- 转 生成 HTMLTestRunner 测试报告
转自:http://www.cnblogs.com/hero-blog/p/4128575.html 04.生成 HTMLTestRunner 测试报告 1.HTMLTestRunner 是 P ...
- selenium python学习笔记---添加等待时间
http://selenium-python.readthedocs.io/waits.html 有时候为了保证脚步运行的稳定性,需要在脚本中添加等待时间 添加休眠:需要引入time包,选择一个固定的 ...
- iptalbes -F
iptalbes -F -F, --flush [chain] Flush the selected chain (all the chains in the table if none is giv ...
- Linux内核(13) - 子系统的初始化之以PCI子系统为例
由Kconfig这张地图的分布来看,PCI这块儿的代码应该分布在两个地方,drivers/pci和arch/i386/pci,两岸三地都属于一个中国,不管是drivers/pci那儿的,还是arch/ ...
- OJ刷题---罗马数字转十进制
题目要求: 输入代码: #include<iostream> using namespace std; int main() { int i,j,n,k; int num[7]= {1, ...
- 高效使用 JavaScript 闭包,避免 Node.js 应用程序中的内存泄漏
在 Node.js 中,广泛采用不同形式的闭包来支持 Node 的异步和事件驱动编程模型.通过很好地理解闭包,您可以确保所开发应用程序的功能正确性.稳定性和可伸缩性. 闭包是一种将数据与处理数据的代码 ...
- IIS 的几个小技巧
1.向 IIS 中安装 .NET 应用程序池 如果先安装了 IIS,后安装了 .NET,就需要向 IIS 中注册 ASP.NET . (有的版本 .NET 安装后可能不会在 IIS 中体现,比如貌似 ...
- 【Android】17.1 Bound Services基本概念
分类:C#.Android.VS2015: 创建日期:2016-03-03 一.Bound Services—被绑定的服务 1.什么是Bound Service Bound Service是指通过接口 ...
- tomcat的server.xml配置及context配置直接引用工程
server.xml配置简介 下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档 server: port 指定一个端口,这个 ...