[转]PROC简单使用用例--VC连接ORACLE
[转]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文件,文件内容为:
- // 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目录下,添加进工程。然后做下图的配置:
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的更多相关文章
- UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例
1.前言 用例是UP和其他众多迭代方法的核心.UP提倡用例驱动开发. 2. 迭代方法中如何使用用例 功能需求首先定义在用例中 用例是迭代计划的重要部分,迭代是通过选择一些用例场景或整个用例来定义的 用 ...
- PROC简单的用例--VC连接ORACLE
操作系统:windows 7 数据库版本号:oracle 10g VS版本号:VS2010 前言:连接ORACLE有许多方法,这里只PROC外壳,说明如何连接oracle,有事吗,希望你告诉我指出,一 ...
- GCOV 使用用例
1.GCOV查看arm-linux代码覆盖率 一. 关于gcov工具 gcov伴随gcc 发布.gcc编译加入-fprofile-arcs -ftest-coverage 参数 ...
- httpclient使用用例
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...
- nanosleep() -- 更精确的延迟 -----一个使用用例
[常规] nanosleep() -- 更精确的延迟 [复制链接] beyes 4220 主题 5152 帖子 3万 积分 GROAD 曲径通幽,安觅芳踪. 积分 30607 发消息 电梯直达 ...
- Navicat Premium 连接 Oracle 数据库
Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同時连接到 MySQL.SQLite.Oracle 及 PostgreSQL 数据库,让管理不同类型的数据库更加方便 ...
- 在Visual Studio中使用用例图描述参与者与用例的关系
在"在Visual Studio中使用用例图描述系统与参与者间的关系"中,使用用例图表示参与者与系统的关系,本篇体验参与者与用例(参与者要做的事情)的关系. 首先创建有关Custo ...
- IDDD 实现领域驱动设计-一个简单业务用例的回顾和理解
上一篇:<IDDD 实现领域驱动设计-由贫血导致的失忆症> 这篇博文是对<实现领域驱动设计>第一章后半部分内容的理解. Domain Experts-领域专家 这节点内容是昨天 ...
- VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法
VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machin ...
随机推荐
- Appium移动自动化测试(四)--先跑起来再说(第一个测试用例-手机YY)
说明 本文将详细说明如何使用Appnium完成:打开手机YY欢迎页面->按住屏幕向左滑动4次->按下"立即体验"按钮->按下"直播"按钮,的整 ...
- 传智Java基础知识测试
共40道选择题,每题2.5分.多选题有错则全错,全对才满分. 单选题: 1. 下列哪个声明是错误的?(B) A. int i=10; B. float f=1.1; C. double ...
- Flash图表控件FusionCharts如何自定义图表的工具提示
什么是FusionCharts的工具提示 当鼠标指示到FusionCharts图表中一个特定的数据点时所显示出来的信息就是工具提示.提示的信息可以是以下内容: 单系列图(除了饼图和环图):名称和值 饼 ...
- Web 站点的水平扩展和垂直扩展 (译文)
当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展.选 用哪种策略主要依赖于要解决的问题以及系统资源的限制.在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点.如果你已经有一 ...
- 学习练习 Oracle数据库小题
Course(课程表) Score(成绩表) Teacher(教师表)
- 洛谷P1828 香甜的黄油 Sweet Butter
P1828 香甜的黄油 Sweet Butter 241通过 724提交 题目提供者JOHNKRAM 标签USACO 难度普及+/提高 提交 讨论 题解 最新讨论 我的SPFA为什么TLE.. 为 ...
- java 中的fanal
三.java中有final final 修饰符 关键字可用于修饰类,变量和方法,final关键字有点类似于C#里的sealed 关键字,用于表示它修饰的类,方法和变量不可改变. fina修饰变量时,表 ...
- ios如何获取位置权限
获取当前位置需要改plist文件 在plist文件加入 NSLocationWhenInUseUsageDescription 字段 /** 初始化一个管理器对象 */ locationMan ...
- Duilib学习笔记《06》— 窗体基类WindowImpBase
在前面的例子中我们发现,窗口都是继承CWindowWnd.INotifyUI,然后重载相关函数去实现.显然,我们发现窗口的创建流程实际上都是差不多的,主要只是在OnCreate加载的配置文件不同等等… ...
- BG雪碧图制作要求
使用软件 firework 保存png-8 然后参数如下图: 格式:PNG 8 调色板:最适合 深度:128 透明度:Alpha 透明度