数据库 proc编程五】的更多相关文章

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sqlca.h" //注意:在oracle中,如果使用char定长类型,那么数据库中的数据如果不足20,那么oracle默认以空格填充 //varchar是变长类型,不足20,oracle不会填充空格 //varchar本质上是typedef stru…
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sqlca.h" //连接数据库 /* EXEC SQL CONNECT {:user IDENTIFIED BY :oldpswd | :usr_psw } [[AT { dbname | :host_variable }] USING :conne…
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sqlca.h" //指示变量:用来对宿主变量做说明 //指示变量作输入:表示宿主变量是空值 //指示变量做输出:当值-1,表示返回的变量是空值 //语法格式:宿主变量 [indicator] 指示变量 其中indicator关键字可加可不加 //eg…
错误处理机制 当在Pro*C/C++应用程序中运行SQL语句中,Oracle会将最近执行的SQL语句的状态信息存储到状态变量SQLCODE.SQLSTATE或者SQLCA结构中. 当SQL语句执行成功时,一般情况下不需要进行任何其他处理:当SQL语句执行失败时,应用程序应该能够检测到失败信息,并进行适当的处理, 以加强应用程序的健壮性.在编写Pro*C/C++应用程序时,通过使用WHENEVER语句可以检测并处理SQL错误,语法如下: EXEC SQL WHENEVER <condition>…
第一种动态sql EXEC SQL EXECUTE IMMEDIATE :psql; .仅适用于非select语句 .嵌入SQL语句中不能包含输入宿主变量 void main() { EXEC SQL WHENEVER SQLERROR DO sqlerr(); EXEC SQL connect:serverid ; printf("connect ok!\r\n"); ]={}; ) { memset(buf,,sizeof(buf)); memset(psql,,sizeof(ps…
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sqlca.h" //普通游标是一条接一条查询数据 //滚动游标是跳跃着查询数据 //注意滚动游标和普通游标定义不同 typedef ]; EXEC SQL BEGIN DECLARE SECTION; char *serverid="sco…
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sqlca.h" //定义char [20]数组类型 typedef ]; //oracle外部变量类型string类似varchar2类型,是以\0结尾的字符串 EXEC SQL BEGIN DECLARE SECTION; char *server…
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sqlca.h" EXEC SQL BEGIN DECLARE SECTION; char *serverid="scott/123456@orcl"; int deptid; ]; ]; EXEC SQL END DECLARE…
Proc 是Oracle提供的一种数据库操作的API.它是基于ESql技术的,需要预编译后才可以变成普通c代码,非常不直观,使用起来不太方便,阅读也存在困难. 因为这些问题导致程序员平时开发中会出现一些Proc操作存在效率低下的情况,本文介绍一些Proc一些编译经验,希望能给大家提供参考. 下面以一个简单需求进行举例说明: 要求把DB1里面一张数据表tbl_hch_test的数据导出到DB2的同名表. 最快的方法当然是使用oracle的数据泵工具进行压缩导出再导入,但expdp/impdp对数据…
/*Linux网络编程(五)——多路IO复用之select() 网络编程中,使用IO复用的典型场合: 1.当客户处理多个描述字时(交互式输入以及网络接口),必须使用IO复用. 2.一个客户同时处理多个套接口. 3.一个tcp服务程序既要处理监听套接口,又要处理连接套接口,一般需要用到IO复用. 4.如果一个服务器既要处理TCP,又要处理UDP,一般也需要用到IO复用. 5.如果一个服务器要处理多个服务或者多个协议,一般需要用到IO复用. */ /*************************…