关于pro*c是什么,这里不做介绍,主要说明如何在vs2015里面开发pro*c程序,并编译exe执行文件
一、vs2015环境配置
1、新建一个空的vc++项目,如下图
2、右击项目属性,添加相关的头文件目录和lib文件目录
选择vc++目录选项,主要添加的有三个地方,如下图
头文件添加,如下图两个,注意要根据自己oracle实际目录,但目录后半部分都一样
lib文件添加
因为预编译使用到oracle的proc.exe工具,所以还要进行下图添加
这个路径就是你的proc.exe文件所在的目录
3、添加linker文件
添加orasql11.lib文件
到此vs2015环境搭建完成
二、在项目添加文件编写代码
1、
右击源文件 添加新文件 选择txt 命名问proc.pc,添加完后如下图
2、右击proc.pc文件
item type 选择custom build tool ,然后点击应用,出现下图
在commandline填写proc $(TargetName) ;outputs:$(IntDir)$(TargetName).c
接下来就是激动的时刻了,在proc.pc文件里面开始编写pro*c代码
写个连接数据库的代码:
#include <stdio.h>
#include <string.h>
#include <sqlca.h>
void sql_error();
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
char *username = "SCOTT";
char *password = "123456";
int empno = 12;
char *ename ="小明
";
char *job = "总统
";
float sal = 80000;
int deptno = 30;
/*char SQLSTATE[6];*/
EXEC SQL END DECLARE SECTION;
exec sql whenever sqlerror do sql_error();
EXEC SQL CONNECT :username IDENTIFIED BY :password;
exec sql insert into emp(empno,ename,job,sal,deptno)values(:empno,:ename,:job,:sal,:deptno);
printf(sqlca.sqlerrm.sqlerrmc);
/*exec sql delete emp where empno = 12;*/
EXEC SQL COMMIT WORK RELEASE;
_getch();
}
void sql_error()
{
char msg[200];
size_t buf_len,msg_len;
buf_len = sizeof(msg);
sqlglm(msg,&buf_len,&msg_len);
if(msg_len > buf_len)
msg_len = buf_len;
printf("%.*s
",msg_len,msg);
}
3、右击proc.pc文件开始编译
编译结果:
哇 编译成功了,那编译后生成的文件在什么地方呢?还记得上面设置outputs属性吗$(IntDir)$(TargetName).c ,到相应的目录下查找
果然在这,然后把这个文件添加到源文件里面,结构如下
然后右击proc.pc文件 编译
这个时候再点击整个项目编译出exe文件
项目build成功
此时生成了相应的exe文件,
点击运行查看数据库连接情况
说明数据库连接成功