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

操作系统:windows 7

数据库版本:oracle 10g

VS版本:VS2010

前言:连接ORACLE的方式有很多,此处仅以PROC为例,说明如何连接oracle,有不妥之处,望诸位看官指出,学习共进。

一、安装oracle 10g对应的客户端版本。

  注意事项:做好客户配置,以本机为例: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服务端端口号,默认为1521;SERVICE_NAME:数据库名称。

二、建立oracle.pc文件,文件内容为:

  1. // oracle.cpp : Defines the entry point for the console application.
  2. //
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <process.h>
  6. #include <errno.h>
  7. //EXEC SQL INCLUDE SQLCA;
  8. #include <sqlca.h>
  9. int main(int argc, char* argv[])
  10. {
  11. EXEC SQL BEGIN DECLARE SECTION;
  12. VARCHAR myusername[20], mypassword[20], myserver[20];
  13. EXEC SQL END DECLARE SECTION;
  14. printf( "\n请输入用户名:" );
  15. gets( (char*)myusername.arr );
  16. myusername.len = (unsigned short) strlen( (char*)myusername.arr );
  17. printf( "\n请输入口令:" );
  18. gets( (char*)mypassword.arr );
  19. mypassword.len = (unsigned short) strlen( (char*)mypassword.arr );
  20. printf("\n请输入服务器名:");
  21. gets( (char*)myserver.arr );
  22. myserver.len = (unsigned short) strlen( (char*)myserver.arr );
  23. EXEC SQL CONNECT :myusername IDENTIFIED BY :mypassword USING :myserver;
  24. if(sqlca.sqlcode < 0 )
  25. printf (" \n用户%s成功地连接到了服务器%s上!\n" , myusername.arr, myserver.arr);
  26. else
  27. printf("\n%ld,%s\n", sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
  28. return 0;
  29. }

三、找到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目录下,添加进工程。然后做下图的配置:

1、数据库include头文件路径配置

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。截图如下:

原文地址:http://blog.csdn.net/heihei36/article/details/40149243

[转]PROC简单使用用例--VC连接ORACLE的更多相关文章

  1. UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例

    1.前言 用例是UP和其他众多迭代方法的核心.UP提倡用例驱动开发. 2. 迭代方法中如何使用用例 功能需求首先定义在用例中 用例是迭代计划的重要部分,迭代是通过选择一些用例场景或整个用例来定义的 用 ...

  2. PROC简单的用例--VC连接ORACLE

    操作系统:windows 7 数据库版本号:oracle 10g VS版本号:VS2010 前言:连接ORACLE有许多方法,这里只PROC外壳,说明如何连接oracle,有事吗,希望你告诉我指出,一 ...

  3. GCOV 使用用例

      1.GCOV查看arm-linux代码覆盖率 一.           关于gcov工具 gcov伴随gcc 发布.gcc编译加入-fprofile-arcs -ftest-coverage 参数 ...

  4. httpclient使用用例

    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...

  5. nanosleep() -- 更精确的延迟 -----一个使用用例

    [常规] nanosleep() -- 更精确的延迟 [复制链接]     beyes 4220 主题 5152 帖子 3万 积分 GROAD 曲径通幽,安觅芳踪. 积分 30607 发消息 电梯直达 ...

  6. Navicat Premium 连接 Oracle 数据库

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

  7. 在Visual Studio中使用用例图描述参与者与用例的关系

    在"在Visual Studio中使用用例图描述系统与参与者间的关系"中,使用用例图表示参与者与系统的关系,本篇体验参与者与用例(参与者要做的事情)的关系. 首先创建有关Custo ...

  8. IDDD 实现领域驱动设计-一个简单业务用例的回顾和理解

    上一篇:<IDDD 实现领域驱动设计-由贫血导致的失忆症> 这篇博文是对<实现领域驱动设计>第一章后半部分内容的理解. Domain Experts-领域专家 这节点内容是昨天 ...

  9. VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

    VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machin ...

随机推荐

  1. 学习联系 Java阶乘相关练习

    题目一:一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度 double hou = 0.00008; for (int i = 1; i > 0; i++) { hou = ...

  2. Visual Studio 2010 C++ 工程文件解读

    在 VS2010 中,C++ 的工程文件已经和 2005 / 2008 有了很大的不同,而是完全采用 MSBUILD 的属性方式进行表达,并且可以让用户通过一次性的配置而对所有的属性进行自定义: 根据 ...

  3. python字符串常用操作方法

    python字符串操作常用操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下. 1.去除空格str.strip():删除字符串两边的指定字符,括号的写入指定字符,默 ...

  4. ionic ngcordova barcodescanner

    二維碼掃描  最近有一個項目用到了 二維碼的掃描  總結一下 記錄一下 1.  ionic platform add ios 2. 添加插件 cordova plugin add https://gi ...

  5. sql server 2008 R2 配置开启远程访问

  6. 【python】os模块

    1.os.name 输出字符串指示正在使用的平台.如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'. 2.os.getcwd() 函数得到当前工作目录,即当前Py ...

  7. Oracle笔记 十二、PL/SQL 面向对象oop编程

    ------------------------抽象数据类型----------- --创建地址类型,一定要加as object,还可以在类型中加过程或方法 create or replace typ ...

  8. 获取Spring的上下文环境ApplicationContext的方式

    摘自: http://blog.csdn.net/yang123111/article/details/32099329 获取Spring的上下文环境ApplicationContext的方式 Web ...

  9. Android IOS WebRTC 音视频开发总结(五九)-- webrtc这蛋糕都怎么吃?

    本文主要介绍webrtc应用状况,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com WebRTC是个好东东,就好比是 ...

  10. LLVM language 参考手册(译)(3)

    可见性模式(Visibility Styles) 所有全局变量和函数具有以下的可见性模式之一: “default” - Default style 在那些使用ELF object file格式的平台( ...