操作系统: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的更多相关文章

  1. [转]PROC简单使用用例--VC连接ORACLE

    [转]PROC简单使用用例--VC连接ORACLE 操作系统:windows 7 数据库版本:oracle 10g VS版本:VS2010 前言:连接ORACLE的方式有很多,此处仅以PROC为例,说 ...

  2. Navicat Premium 连接 Oracle 数据库

    Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同時连接到 MySQL.SQLite.Oracle 及 PostgreSQL 数据库,让管理不同类型的数据库更加方便 ...

  3. 一则简单演示样例看Oracle的“无私”健壮性

    Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  4. vc++用ADO方式连接oracle问题

    今天装了个oracle客户端,准备写个访问远程oracle的程序.用的是vs2010,采用ADO的连接方法连接oracle,结果运行的时候总是报下面的错: 从提示可以看出是没有找到OraOLEDBup ...

  5. C#连接Oracle简单教程

    要点:本文主要介绍如何使用最简单的方法让C#操作Oracle数据库,不需要安装Oracle客户端之类的东西. 最近由于工作需要,要使用C#从SQLServer向Oracle导入数据.之前没有怎么接触过 ...

  6. java连接oracle的简单实例

    连接oracle的时候,要导入oracle驱动的jar包. 连接的时候,有statement和preparedstatement两种,从代码中可以看出不同. example: package com. ...

  7. 简单的JDBC连接oracle数据库例子

    java连接Oracle数据库 JDBC(Java Data Base Connectivity,java数据库连接),那么我们该如何用java进行数据库的连接呢. import java.sql.C ...

  8. plsql连接oracle客户端(简单,实用方案)附件

    plsql 连接 oracle 需要在本地安装oracle客户端(附件中下载): 将文件下载下来后,放到任意目录,例如 D:\instantclient_10_2 修改 tnsnames.ora 文件 ...

  9. Perl/C#连接Oracle/SQL Server和简单操作

    连接数据库是一个很常见也很必须的操作.先将我用到的总结一下. 1. Perl 连接数据库 Perl 连接数据库的思路都是: 1)使用DBI模块: 2)创建数据库连接句柄dbh: 3)利用dbh创建语句 ...

随机推荐

  1. BZOJ2893: 征服王

    题解: 裸的上下界最小流是有问题的.因为在添加了附加源之后求出来的流,因为s,t以及其它点地位都是平等的.如果有一个流经过了s和t,那么总可以认为这个流是从s出发到t的满足题意的流. 既然可能存在s到 ...

  2. Springmvc构造RESTful详细讲解

    Rest介绍 /blog/1 HTTP GET => 得到id = 1的blog/blog/1 HTTP DELETE => 删除 id = 1的blog/blog/1 HTTP PUT ...

  3. Ehcache和MemCached比较分析

    项目 Memcache Ehcache 分布式 不完全,集群默认不实现 支持 集群 可通过客户端实现 支持(默认是异步同步) 持久化 可通过第三方应用实现,如sina研发的memcachedb,将ca ...

  4. 【转】 Homebrew – OSX下简单的包管理系统

    很多linux用户很喜欢 (Debian/Ubuntu)系列的apt包管理系统和(Redhat/Fedora)系列的yum包管理系统. 包括Windows用户都有多种方便的软件管理工具,如:360软件 ...

  5. 前端的小Demo——涉及keyCode

    以下是我的代码: <!doctype html> <html> <head> <meta charset="utf-8"> < ...

  6. 在PowerDesigner中设计物理模型2——约束

    唯一约束 唯一约束与创建唯一索引基本上是一回事,因为在创建唯一约束的时候,系统会创建对应的一个唯一索引,通过唯一索引来实现约束.不过唯一约束更直观的表达了对应列的唯一性,使得对应索引的目的更加清晰,所 ...

  7. 消息系统Kafka介绍

    1.  概述 Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数 据.活跃的流式数据在web网站应用中非常常见,这 些数据包括网站的pv.用户访问了什么内容,搜 ...

  8. SQLite Helper (C#) zt

    http://www.codeproject.com/Articles/746191/SQLite-Helper-Csharp This small class (SQLiteHelper.cs) i ...

  9. tdx api z

    调用TdxAPI.dll函数 .DLL命令 TdxInit, 逻辑型, "TdxApi.dll", "TdxInit", , 初始化通达信实例,成功时返回tru ...

  10. python引用在函数传参时的体现以及可变与不可变对象的对比

    今天偶然看到 vamei 老师的博客 http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html 讲的是python动态类型以及引用的事儿 ...