Pro*C/C++具体操作
2015-12-16 10:37
483 查看
Pro*C/C++具体操作
1、helloworld程序(linux版本 c语言)
程序:
1)proc *.pc 预编译,会生成.c文件
proc hello.pc
2)编译,链接
gcc -o hello hello.c -I/opt/oracle/product/11.2/db_1/precomp/public \
-L/opt/oracle/product/11.2/db_1/lib -lclntsh
3)执行应用程序
./hello
2、helloworld程序(linux版本 c++语言)
程序:
c++版本编译流程
1)proc *.pc 预编译,会生成.cpp文件
proc INAME=./hello.pc ONAME=hello.cc PARSE=NONE CODE=CPP
#INCLUDE=/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include
2)编译,链接
g++ hello.cc -o hello -I${ORACLE_HOME}/precomp/public -L${ORACLE_HOME}/lib -lclntsh
3)运行
./hello
3、vs2013操作
程序见上面
开发流程:
1)proc *.pc 预编译,会生成.c文件
用VS2013创建一个空项目,项目名为ProcHello,右键ProcHello项目里面的源文件->添加->新建项,选择txt文档,在项目名填上ProcHello.pc,点击完成,就可以看到源文件夹里面有了一个ProcHello.pc的文件。编写代码,右键ProcHello.pc,选择属性->常规->项类型->自定义生成工具,点击完成之后。再次右键ProcHello.pc,选择属性->自定义生成工具->常规,命令行:proc INAME=$(TargetName).pc PARSE=FULL(对应的是.c文件)
proc INAME=$(TargetName).pc PARSE=NONE CODE=CPP(对应的是.cpp文件),
输出:$(IntDir)$(TargetName).c(对应的是.c文件)
$(IntDir)$(TargetName).cpp(对应的是.cpp文件)。
2)编译,链接
右键ProcHello.pc文件->编译,如果没有错误,下面会显示生成成功。再次右键源文件->添加->现有项,找到生成的ProcHello.cpp或者(ProcHello.c),这样源文件夹里面就有了两个文件了。右键工程->属性,选择C/C++->常规->附加包含目录,添加C:\software\Oracle11g\product\11.2.0\dbhome_1\precomp\public(orcale的头文件),选择链接器->输入->附加依赖项,添加orasql11.lib;oraxa11.lib;oci.lib;orasqx11.lib;,在选择链接器->常规->附加库目录,添加
C:\software\Oracle11g\product\11.2.0\dbhome_1\precomp\LIB
C:\software\Oracle11g\product\11.2.0\dbhome_1\precomp\LIB\msvc
C:\software\Oracle11g\product\11.2.0\dbhome_1\OCI\lib\MSVC
C:\software\Oracle11g\product\11.2.0\dbhome_1\RDBMS\XA
3)注意,如果是连接64位的数据库,
右键ProcHello.pc文件->配置管理器->活动解决方案平台->新建->键入或选择新的平台->x64
1、helloworld程序(linux版本 c语言)
程序:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include "sqlca.h" //演示helloworld EXEC SQL BEGIN DECLARE SECTION; char *pid = "scott/tiger"; EXEC SQL END DECLARE SECTION; int main() { int ret = 0; EXEC SQL CONNECT :pid ; if (sqlca.sqlcode != 0) { ret = sqlca.sqlcode; printf("connect err:%d ", ret); return ret; } printf("connect...ok.\n"); return ret; }开发流程
1)proc *.pc 预编译,会生成.c文件
proc hello.pc
2)编译,链接
gcc -o hello hello.c -I/opt/oracle/product/11.2/db_1/precomp/public \
-L/opt/oracle/product/11.2/db_1/lib -lclntsh
3)执行应用程序
./hello
2、helloworld程序(linux版本 c++语言)
程序:
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include "sqlca.h" using namespace std; //先定义宿主变量 (SQL变量) EXEC SQL BEGIN DECLARE SECTION ; char *serverid = "scott/tiger@orcl"; EXEC SQL END DECLARE SECTION ; int main() { int ret = 0; cout<<"hello...."<<endl; //printf("hello....\n"); //cout<<"serverid:"<<serverid<<endl; EXEC SQL connect :serverid; if (sqlca.sqlcode != 0) { ret = sqlca.sqlcode ; printf("connect err:%d \n", ret); return ret; } else { printf("connect ok\n"); } EXEC SQL COMMIT RELEASE; //提交事务断开连接 return ret; }
c++版本编译流程
1)proc *.pc 预编译,会生成.cpp文件
proc INAME=./hello.pc ONAME=hello.cc PARSE=NONE CODE=CPP
#INCLUDE=/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include
2)编译,链接
g++ hello.cc -o hello -I${ORACLE_HOME}/precomp/public -L${ORACLE_HOME}/lib -lclntsh
3)运行
./hello
3、vs2013操作
程序见上面
开发流程:
1)proc *.pc 预编译,会生成.c文件
用VS2013创建一个空项目,项目名为ProcHello,右键ProcHello项目里面的源文件->添加->新建项,选择txt文档,在项目名填上ProcHello.pc,点击完成,就可以看到源文件夹里面有了一个ProcHello.pc的文件。编写代码,右键ProcHello.pc,选择属性->常规->项类型->自定义生成工具,点击完成之后。再次右键ProcHello.pc,选择属性->自定义生成工具->常规,命令行:proc INAME=$(TargetName).pc PARSE=FULL(对应的是.c文件)
proc INAME=$(TargetName).pc PARSE=NONE CODE=CPP(对应的是.cpp文件),
输出:$(IntDir)$(TargetName).c(对应的是.c文件)
$(IntDir)$(TargetName).cpp(对应的是.cpp文件)。
2)编译,链接
右键ProcHello.pc文件->编译,如果没有错误,下面会显示生成成功。再次右键源文件->添加->现有项,找到生成的ProcHello.cpp或者(ProcHello.c),这样源文件夹里面就有了两个文件了。右键工程->属性,选择C/C++->常规->附加包含目录,添加C:\software\Oracle11g\product\11.2.0\dbhome_1\precomp\public(orcale的头文件),选择链接器->输入->附加依赖项,添加orasql11.lib;oraxa11.lib;oci.lib;orasqx11.lib;,在选择链接器->常规->附加库目录,添加
C:\software\Oracle11g\product\11.2.0\dbhome_1\precomp\LIB
C:\software\Oracle11g\product\11.2.0\dbhome_1\precomp\LIB\msvc
C:\software\Oracle11g\product\11.2.0\dbhome_1\OCI\lib\MSVC
C:\software\Oracle11g\product\11.2.0\dbhome_1\RDBMS\XA
3)注意,如果是连接64位的数据库,
右键ProcHello.pc文件->配置管理器->活动解决方案平台->新建->键入或选择新的平台->x64
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- 关于指针的一些事情
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- c++ primer 第五版 笔记前言
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- share_ptr的几个注意点
- oracle的nvl函数的使用介绍
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累