PROC简单的用例--VC连接ORACLE
操作系统:windows 7
数据库版本号:oracle 10g
VS版本号:VS2010
前言:连接ORACLE有许多方法,这里只PROC外壳,说明如何连接oracle,有事吗,希望你告诉我指出,一起学习。
一、安装oracle 10g相应的client版本号。
注意事项:做好客户配置,以本机为例:D:\oracle\product\10.2.0\client_2\NETWORK\ADMIN\tnsnames.ora文件为
# tnsnames.ora Network Configuration File: d:\oracle\product\10.2.0\client_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
DB_DEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.8.222)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db_demo)
)
)
host:ORACLE服务端IP地址;PORT:ORACLE服务端port号,默觉得1521;SERVICE_NAME:数据库名称。
二、建立oracle.pc文件,文件内容为:
// oracle.cpp : Defines the entry point for the console application.
// #include <stdio.h>
#include <stdlib.h> #include <process.h>
#include <errno.h> //EXEC SQL INCLUDE SQLCA;
#include <sqlca.h> int main(int argc, char* argv[])
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR myusername[20], mypassword[20], myserver[20];
EXEC SQL END DECLARE SECTION; printf( "\n请输入用户名:" );
gets( (char*)myusername.arr );
myusername.len = (unsigned short) strlen( (char*)myusername.arr );
printf( "\n请输入口令:" );
gets( (char*)mypassword.arr );
mypassword.len = (unsigned short) strlen( (char*)mypassword.arr );
printf("\n请输入服务器名:");
gets( (char*)myserver.arr );
myserver.len = (unsigned short) strlen( (char*)myserver.arr );
EXEC SQL CONNECT :myusername IDENTIFIED BY :mypassword USING :myserver; if(sqlca.sqlcode < 0 )
printf (" \n用户%s成功地连接到了服务器%s上。\n" , myusername.arr, myserver.arr);
else
printf("\n%ld,%s\n", sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
return 0;
}
三、找到ORACLE安装文件夹下PROC.exe文件。本机文件夹为:D:\oracle\product\10.2.0\client_2\BIN,将oracle.pc文件复制到些文件夹下,执行cmd命令行,cd到此文件夹下,执行proc.exe oracle.pc oracle.cpp命令,会在当前文件夹下生成oracle.cpp文件。
四、启动VS2010,建立空控件台的oracle项目。下面要注意了,做好VS项目配置。将oracle.cpp的拷贝至oracle文件夹下,加入进project。
然后做下图的配置:
1、数据库include头文件路径配置
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVpaGVpMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
2、数据库LIB文件文件夹配置
3、数据库依赖LIB文件配置
五、删除之前自己主动生成的oracle.cpp文件,将oracle.cpp加入进oracle项目,编译链接。可能会出现下面几个错误:
1、提示未include "stdafx.h"。解决方式:在oracle.cpp開始部位加入#include "stdafx.h"
2、提示 error LNK2001: unresolved external symbol "void __cdecl sqlcxt(void * *,unsigned int *,struct sqlexd *,struct sqlcxp const *)" (?sqlcxt@@YAXPAPAXPAIPAUsqlexd@@PBUsqlcxp@@@Z)错误。解决方式:extern
void sqlcxt (void **, unsigned int *。struct sqlexd *, const struct sqlcxp *);在extern后加上"C"编译就可以
3、其他一些问题。就细致查看配置的include、lib路径是否正确。以及lib文件名称是否正确。
六、执行生成的oracle.exe。截图例如以下:
PROC简单的用例--VC连接ORACLE的更多相关文章
- [转]PROC简单使用用例--VC连接ORACLE
[转]PROC简单使用用例--VC连接ORACLE 操作系统:windows 7 数据库版本:oracle 10g VS版本:VS2010 前言:连接ORACLE的方式有很多,此处仅以PROC为例,说 ...
- Navicat Premium 连接 Oracle 数据库
Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同時连接到 MySQL.SQLite.Oracle 及 PostgreSQL 数据库,让管理不同类型的数据库更加方便 ...
- 一则简单演示样例看Oracle的“无私”健壮性
Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...
- vc++用ADO方式连接oracle问题
今天装了个oracle客户端,准备写个访问远程oracle的程序.用的是vs2010,采用ADO的连接方法连接oracle,结果运行的时候总是报下面的错: 从提示可以看出是没有找到OraOLEDBup ...
- C#连接Oracle简单教程
要点:本文主要介绍如何使用最简单的方法让C#操作Oracle数据库,不需要安装Oracle客户端之类的东西. 最近由于工作需要,要使用C#从SQLServer向Oracle导入数据.之前没有怎么接触过 ...
- java连接oracle的简单实例
连接oracle的时候,要导入oracle驱动的jar包. 连接的时候,有statement和preparedstatement两种,从代码中可以看出不同. example: package com. ...
- 简单的JDBC连接oracle数据库例子
java连接Oracle数据库 JDBC(Java Data Base Connectivity,java数据库连接),那么我们该如何用java进行数据库的连接呢. import java.sql.C ...
- plsql连接oracle客户端(简单,实用方案)附件
plsql 连接 oracle 需要在本地安装oracle客户端(附件中下载): 将文件下载下来后,放到任意目录,例如 D:\instantclient_10_2 修改 tnsnames.ora 文件 ...
- Perl/C#连接Oracle/SQL Server和简单操作
连接数据库是一个很常见也很必须的操作.先将我用到的总结一下. 1. Perl 连接数据库 Perl 连接数据库的思路都是: 1)使用DBI模块: 2)创建数据库连接句柄dbh: 3)利用dbh创建语句 ...
随机推荐
- 取出block所对应的hash值
/**********************************************************************//** Gets the hash value of t ...
- 一种基于Storm的可扩展即时数据处理架构思考
问题引入 使用storm可以方便的构建一种集群式的数据框架,并通过定义topo来实现业务逻辑. 但使用topo存在一个缺点, topo的处理能力来自于其启动时设置的worker数目,在很多情况下,我们 ...
- UVa 1363 (数论 数列求和) Joseph's Problem
题意: 给出n, k,求 分析: 假设,则k mod (i+1) = k - (i+1)*p = k - i*p - p = k mod i - p 则对于某个区间,i∈[l, r],k/i的整数部分 ...
- extjs分组查询
<script type="text/jscript"> var grid; Ext.onReady(function () { Ext.QuickTips.init( ...
- 解读四大移动web应用开发框架真相
[51CTO译文]近来关于新的移动网页框架及移动平台存在不少争论.平心而论,这些工具在条款内容方面的混乱与模糊也是造成大家误解的原因之一.我希望通过几条简短的评述来尽量清理这种认识层面上的混乱状态. ...
- Base-Android快速开发框架(五)--网络操作之RequestModel、ResponeModel、CustomAsyncHttpClient
在正式介绍CustomAsyncHttpClient之前,刚好最近有一个朋友找我帮忙给他们看下一个APP.我先上一段代码截图.一段检测版本更新的接口代码.
- MapReduce 支持的部分数据挖掘算法
MapReduce 支持的部分数据挖掘算法 MapReduce 能够解决的问题有一个共同特点:任务可以被分解为多个子问题,且这些子问题相对独立,彼此之间不会有牵制,待并行处理完这些子问题后,任务便被解 ...
- 【创建本地仓库】【for Centos】CentOS下创建本地repository
[日期]2014年4月24日 [平台]Centos 6.5 [工具]httpd yum-utils createrepo [步骤] 1)安装httpd. yum install httpd 2)安装y ...
- BNUOJ-29357 Bread Sorting 模拟
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29357 直接模拟就可以了.. //STATUS:C++_AC_190MS_1884KB # ...
- BNUOJ-26480 Horror List 最短路
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26480 题意:简单来说,就是给一个图,然后从每个honor list中的点求最短路.. 边 ...