VS2010配置Pro*C/C++程序开发环境

    

    由于一些很特殊的要求,需要在win7下面使用orcale 11g数据库,开发的是一个C/C++的项目。在网上查到资料说:使用Pro*C/C++的方式来使用orcale数据库比较方便。但是网上对应的资料很少,出现了问题基本没有人回答和帮助,所以将自己成功搭建出来的编译环境的过程再此记录下来。


    首先,在win7下面安装orcale 11g,vs2010,这类的资料网上比较多,就不详细的介绍了,主要介绍如何在vs2010里面使用proc预编译.pc文件的说明和配置过程以及最后实现的截图。我在使用的是scott用户(密码是dragonwake)来登录orcl数据库的,里面需要创建我们测试用的数据库表和数据,对应的SQL脚本我放在了我的资源文件里面了。使用SQL Plus工具来执行SQL脚本。命令为:@:\d:\sql\create_e_emp.sql和@:\d:\sql\insert_e_emp.sql(我的脚本是放在d:\sql里面的)。


    用VS2010创建一个空项目,项目名为ProcDemo,右键ProcDemo项目里面的源文件->添加->新建项,选择txt文档,在项目名填上ProcDemo.pc,点击完成,就可以看到源文件夹里面有了一个ProcDemo.pc的文件。右键ProcDemo.pc,选择属性->常规->项类型->自定义生成工具,点击完成之后。再次右键ProcDemo.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文件)。

    

    如果是要生成.c文件,在.pc文件里面填写:

#include <stdio.h>
exec sql include sqlca;
int  main()

{
    char  userpwd[30]="scott/dragonwake";
    char  var_name[30];
    exec sql connect:userpwd;
    exec sql select first_name into 
    :var_name from s_emp where id=1;
    printf("var_name:%s\n",var_name); 
    exec sql commit work release; 

    getchar();

}

    如果要生成.cpp文件,在.pc文件里面填写:

#include <iostream>
using namespace std;
exec sql include sqlca;
int  main()

{
    exec sql  begin  declare section;
    char  userpwd[30]="scott/dragonwake";
    char  var_name[30];
    exec sql  end    declare section; 
    exec sql connect:userpwd;
    exec sql select first_name into 
    :var_name from s_emp where id=1;
    cout<<"var_name:"<<var_name<<endl; 
    exec sql commit work release; 

    getchar();

}

    右键ProcDemo.pc文件->编译,如果没有错误,下面会显示生成成功。再次右键源文件->添加->现有项,找到生成的ProcDemo.cpp或者(ProcDemo.c),这样源文件夹里面就有了两个文件了。右键工程->属性,选择C/C++->常规->附加包含目录,添加E:\app\q\product\11.2.0\dbhome_1\precomp\public(orcale的头文件),选择链接器->输入->附加依赖项,添加orasql11.lib;oraxa11.lib;oci.lib;orasqx11.lib;%(AdditionalDependencies),在选择链接器->常规->附加库目录,添加E:\app\q\product\11.2.0\dbhome_1\precomp\LIB;E:\app\q\product\11.2.0\dbhome_1\precomp\LIB\msvc;E:\app\q\product\11.2.0\dbhome_1\OCI\lib\MSVC;E:\app\q\product\11.2.0\dbhome_1\RDBMS\XA;%(AdditionalLibraryDirectories)。


    右键工程->生成,如果没有错误,选择调试里面的执行,就可以看到结果了!!!有问题的请联系Q:905568425!!!


你可能感兴趣的:(C++,数据库,VS2010,proc)