数据库 Proc编程二
#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 :connect_string ]
[ { ALTER AUTHORIZATION :newpswd | IN { SYSDBA | SYSOPER } MODE }];
*/ EXEC SQL BEGIN DECLARE SECTION;
char * serverid="scott/123456@orcl";
char user[];
char passwd[];
char sid[];
EXEC SQL END DECLARE SECTION; //user 用户名
//passwd 密码
//sid 数据库ID void main()
{
int ret=;
//C语言中使用宿主变量
//printf("serverid=%s\r\n",serverid); printf("user:");
scanf("%s",user); printf("passwd:");
scanf("%s",passwd); printf("sid:");
scanf("%s",sid); //连接数据库方式一--在嵌入SQL编程中使用变量需要加:
EXEC SQL connect:user IDENTIFIED BY :passwd USING :sid ;
//连接数据库方式二
//EXEC SQL connect:serverid;
if(sqlca.sqlcode!=)
{
ret=sqlca.sqlcode;
printf("connect err :%d",ret);
system("pause");
}else
{
printf("connect ok!\r\n");
//提交事务断开连接
EXEC SQL commit release;
printf("Oracle closed !\r\n");
system("pause");
}
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sqlca.h" EXEC SQL BEGIN DECLARE SECTION;
char *user="scott";
char *passwd="";
char *sid="orcl";
char *linkf="link1";//通过宿主变量 指定名字
char *linkt="link2";
EXEC SQL END DECLARE SECTION; //user 用户名
//passwd 密码
//sid 数据库ID void main()
{
int ret=;
//连接数据库方式三 --多个用户连接多个数据库
EXEC SQL connect:user IDENTIFIED BY :passwd AT :linkf USING :sid ;
if(sqlca.sqlcode!=)
{
ret=sqlca.sqlcode;
printf("connect1 err :%d",ret);
system("pause");
}else
{
printf("connect1 ok!\r\n");
//提交事务断开连接
EXEC SQL commit release;
printf("Oracle closed !\r\n");
//system("pause");
}
EXEC SQL connect:user IDENTIFIED BY :passwd AT :linkt USING :sid ;
if(sqlca.sqlcode!=)
{
ret=sqlca.sqlcode;
printf("connect2 err :%d",ret);
system("pause");
}else
{
printf("connect2 ok!\r\n");
//提交事务断开连接
EXEC SQL commit release;
printf("Oracle closed !\r\n");
//system("pause");
}
system("pause");
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sqlca.h" //这里我用的是一个用户,其实也可以是多个用户
EXEC SQL BEGIN DECLARE SECTION;
char *user="scott";
char *passwd="";
char *sid="orcl";
EXEC SQL END DECLARE SECTION; void main()
{
int ret=;
//和第三种方式不同,由oracle自动分配
EXEC SQL DECLARE linkf DATABASE;
EXEC SQL DECLARE linkt DATABASE;
//连接数据库方式四 --注意linkf不再是宿主变量,所以不需要加:
EXEC SQL connect:user IDENTIFIED BY :passwd AT linkf USING :sid ;
if(sqlca.sqlcode!=)
{
ret=sqlca.sqlcode;
printf("connect1 err :%d",ret);
system("pause");
}else
{
printf("connect1 ok!\r\n");
//提交事务断开连接
EXEC SQL commit release;
printf("Oracle closed !\r\n");
//system("pause");
}
EXEC SQL connect:user IDENTIFIED BY :passwd AT linkt USING :sid ;
if(sqlca.sqlcode!=)
{
ret=sqlca.sqlcode;
printf("connect2 err :%d",ret);
system("pause");
}else
{
printf("connect2 ok!\r\n");
//提交事务断开连接
EXEC SQL commit release;
printf("Oracle closed !\r\n");
//system("pause");
}
system("pause");
}
数据库 Proc编程二的更多相关文章
- 数据库 proc编程四
错误处理机制 当在Pro*C/C++应用程序中运行SQL语句中,Oracle会将最近执行的SQL语句的状态信息存储到状态变量SQLCODE.SQLSTATE或者SQLCA结构中. 当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 ...
- 数据库 proc编程五
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- 数据库 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 ...
- Java Socket聊天室编程(二)之利用socket实现单聊聊天室
这篇文章主要介绍了Java Socket聊天室编程(二)之利用socket实现单聊聊天室的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在上篇文章Java Socket聊天室编程(一)之 ...
- Oracle Proc编程性能优化经验
Proc 是Oracle提供的一种数据库操作的API.它是基于ESql技术的,需要预编译后才可以变成普通c代码,非常不直观,使用起来不太方便,阅读也存在困难. 因为这些问题导致程序员平时开发中会出现一 ...
随机推荐
- asp.net 输出微信自定义菜单json
这里使用LitJson.dll作json解析. 微信规定的自定义菜单json样式如下: { "button":[ { "type":"click&qu ...
- Nginx TCP Proxy模块的编译安装
这次用一个国内开发者在GitHub上的开源项目https://github.com/yaoweibin/nginx_tcp_proxy_module 我的系统已经安装了最新的Nginx,现在需要下载源 ...
- Hadoop HelloWord Examples -对Hadoop FileSystem进行操作 - 基于Java
我之前对hadoop的各种文件操作都是基于命令行的,但是进阶后,经常需要直接从java的代码中对HDFS进行修改.今天来练习下. 一个简单的demo,将hdfs的一个文件的内容拷贝到另外hdfs一个文 ...
- 使用select处理任意数目个客户的单进程程序
改写http://www.cnblogs.com/nufangrensheng/p/3587962.html中的TCP回射服务器程序,把它重写成使用select来处理任意数目个客户的单进程程序,而不是 ...
- Python list添加新元素
append()和insert() 添加新元素现在,班里有3名同学:>>> L = ['Adam', 'Lisa', 'Bart']今天,班里转来一名新同学 Paul,如何把新同学添 ...
- Execute failed: java.io.IOException: Cannot run program "sdk-linux/build-tools/22.0.0/aapt": error=2
在Linux上使用ant编译打包apk的时候,出现以下的错误及解决方法: 1./usr/local/android-sdk-linux/tools/ant/build.xml:698: Execute ...
- 深层神经网络框架的python实现
概述 本文demo非常适合入门AI与深度学习的同学,从最基础的知识讲起,只要有一点点的高等数学.统计学.矩阵的相关知识,相信大家完全可以看明白.程序的编写不借助任何第三方的深度学习库,从最底层写起. ...
- 快速激活JetBrains系列产品
本篇文章由:http://xinpure.com/quickly-activate-the-jetbrains-products/ lanyus.com 域名已被全面封杀,大家可以到 http://i ...
- js实现同时提交多个表单
http://www.jb51.net/article/17284.htm 两种方法: 1.使用ajax异步提交表单.方法简单,jQuery插件等都能实现. 2.使用iframe.方法很原始,较麻烦. ...
- Python title() 方法
描述 Python title() 方法返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写. 语法 title() 方法语法: S.title() 参数 无. ...