数据库 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代码,非常不直观,使用起来不太方便,阅读也存在困难. 因为这些问题导致程序员平时开发中会出现一 ...
随机推荐
- Python中的迭代器漫谈
转自:http://www.jb51.net/article/60706.htm 熟悉Python的都知道,它没有类似其它语言中的for循环, 只能通过for in的方式进行循环遍历.最典型的应用就是 ...
- UISearchbar去除背景色的方法,适合iOS5/6/7/8.0beta
通常使用UISearchbar都须要去除其背景色来与自己的界面风格保持协调,可是UISearchbar的设计随着iOS版本号的升级不断地在发生着变化.以下我们通过分析UISearchbar在各个iOS ...
- Percona Toolkit工具集介绍
部署mysql工具是一个非常重要的部分,所以工具的可靠性和很好的设计非常重要.percona toolkit是一个有30多个mysql工具的工具箱.兼容mysql,percona server,mar ...
- 数据库-IO系统性能之衡量性能的几个指标
转自http://storage.it168.com/a2011/0323/1169/000001169755_all.shtml 作为一个数据库管理员,关注系统的性能是日常最重要的工作之一,而在所关 ...
- Tomcat中部署Java Web应用程序的方式
Tomcat中部署Java Web应用程序的几种方式: #PetWeb是工程名 1.在TOMCAT_HOME\conf\server.xml文件的HOST节点中加入 <Context docBa ...
- pandas如何去掉时间列的小时只保留日期
最近无聊,想玩玩数据挖掘,就拿天池的天池新人实战赛之[离线赛]练练手.https://tianchi.aliyun.com/getStart/information.htm?spm=5176.1000 ...
- android中文字中间有超链接的实现方法
1.XML里写: <resources> <string name="ACCOUNT_REGISTER_PROMPT_AGREEMENT">点击注册,表 ...
- 黑马程序猿——25,打印流,合并流,对象序列化,管道流,RandomAccessFile
------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培 ...
- 构造矩阵解决这个问题 【nyoj299 Matrix Power Series】
矩阵的又一个新使用方法,构造矩阵进行高速幂. 比方拿 nyoj299 Matrix Power Series 来说 给出这样一个递推式: S = A + A2 + A3 + - + Ak. 让你求s. ...
- mark v1 SecurityConfig
package cn.efunbox.cms.configuration; import cn.efunbox.afw.core.entity.ApiCode; import cn.efunbox.a ...