關於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 ="小明\n";
char *job = "總統\n";
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\n\n",msg_len,msg);
}
3、右擊proc.pc文件開始編譯
編譯結果:
哇 編譯成功了,那編譯后生成的文件在什么地方呢?還記得上面設置outputs屬性嗎$(IntDir)$(TargetName).c ,到相應的目錄下查找
果然在這,然后把這個文件添加到源文件里面,結構如下
然后右擊proc.pc文件 編譯
這個時候再點擊整個項目編譯出exe文件
項目build成功
此時生成了相應的exe文件,
點擊運行查看數據庫連接情況
說明數據庫連接成功