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 *)" ([email protected]@[email protected]@[email protected]@@Z)错误。解决方案:extern 
void sqlcxt (void **, unsigned int *,struct sqlexd *, const struct sqlcxp *);在extern后加上"C"编译即可

3、其它一些问题,就仔细查看配置的include、lib路径是否正确,以及lib文件名是否正确。

六、运行生成的oracle.exe。截图如下:



时间: 2024-08-24 01:50:14

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 F

Linux awk 使用用例

环境:CentOS 鉴于语句描述苍白无力,用例子直接说明. 文件内容: zilzhang 19881110 jiangxi 18 film zhagnsan 21321    sichuan 100 card 1. 打印整行 $ awk '{print $0}' mytxt zilzhang 19881110 jiangxi 18 film zhagnsan 21321    sichuan 100 card 2. 打印第三行 $ awk '{print $3}' mytxt jiangxi s

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 Configuratio

Redis 初级使用用例,简单有效

Redis 简介 Redis(REmote DIctionary Server) 是完全开源免费的使用ANSI C语言编写,遵守BSD协议,支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型,是一个高性能的key-value数据库. Redis与其他 key - value 缓

cmake的语法及使用用例

cmake是个跨平台编译工具,类似于autoconf.通过编译本地环境的makefile或者workplace来编译程序. 它的优点是简单高效. 语法: CMakeList.txt文件是由注释.命令和空白字符组成. 注释是由 # 开始,到行结尾. 命令是由:命令名(空格分隔的参数)组成. 例如:command (args-.) args是以空格分隔的参数例表(如果参数中包含空格,则要加双引号) 除了用于分隔参数的空白字符(空格.换行号.tabs)都是被忽略不计的.任何包含在双引号中的字符都做为一

vc 连接oracle数据库

忙活了几天,终于用vc连接到了oracle数据库(32位),虽然只是连接到本机的.有一种豁然开朗的感觉. 刚开始的时候,各种连不上,我就把关于oracle的软件全删了.我不是正规卸载的,而是把相关文件夹都删了.还有注册表项.(见本文末尾) 重新安装了11g,要完整版,不是express的. pszPwd-密码   ,pszUser-用户, pszServer-数据源(我的是orcl) [cpp] view plaincopy CString cstrSql = "Provider=OraOLED

framework-core 使用用例

1.property文件加载 使用: 当你引用framework-core时,需要在加载spring配置文件classpath*:spring/applicationContext*.xml,可以在web.xml中这样配置 <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:spring/applicationContext*.xml

【spring mvc】framework-core 跨域 使用用例

1.引入jar文件 <dependency> <groupId>cn.bidlink.nbl</groupId> <artifactId>framework-core</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> 2.添加spring mvc interceptor配置到springmvc-config.xml文件 <mvc:in

泛型使用用例

将字符串list转换为numberList public static <T extends Number> List<T> stringToNumList(String str) { List<T> list = new ArrayList<T>(); if(StringUtils.isNotEmpty(str)) { String[] idArr = str.split(",", 0); for(String id : idArr)