1、指定可执行文件路悄钸碌灵径实际上是在Visual C++指定运行Oracle 10g的Pro*C/C++预编译器proc.exe。这个proc.e旌忭檀挢xe在服务器端和客户端都有,我想是一样的。这里是使用的是服务器端的。具体做法是:在VC 6.0的TOOl->Option菜单项的Directory选项卡里,在Show directoryes for选项里选择Executable files,将proc.exe的路径加进去。具体要加哪些头文件呢,主要是两个,一个是sqlca.h所在的目录,一般是precomp\public,另一个是OCI的头文件。至于库文件,只需加OCI的库文件。具体如下图
2、使用配置文件实际上是为了设置预编译选项。因为刚入门,这次我们使用系统配置文件,但是系统配置文件并不能完全满足我们的需要,如系锱亻绢螬统配置文件并不包含解析内嵌SQL语法,因此我们要对系统配置文件编辑一下。系统配置文件一般是%precomp\admin\pcscfg.cfg。这里要根据个人的Oracle安装目录来找,我的是:D:\Oracle\Server\precomp\admin\pcscfg.cfg。使用记事本(其它文本编辑工具也行)打开这个文件,在里面添加如下内容:parse=fullinclude="C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE"include="D:\Oracle\Server\precomp\public"include="D:\Oracle\Server\OCI\include"其中parse=full表示解析源文件的所有语法,包括C语法和内嵌SQL语法,include 则指定了头文件所在的路径,包括Visual C++头文件路径、ProC/C++头文件路径和OCI头文件路径。
3、建立VC工程,编写代码。首先使用记事本新建一个文本文件,输入以下代码:#include <stdio.h>#i荏鱿胫协nclude <string.h>#include <stdlib.h>#include <conio.h>#include <sqlca.h>int main(){ char username[10],password[10],server[10]; printf("输入用户名:\n"); gets(username); printf("输入口令:\n"); gets(password);printf("输入网络服务名:\n"); gets(server);EXEC SQL CONNECT:username IDENTIFIED BY:password USING:server; if(sqlca.sqlcode==0) printf("连接成功!\n"); else printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc); getch(); return 0;}保存为demo.pc(这里注意后缀名为.pc)在VC上建一个空的控制台工程demo,在FileView页面中选中Source File,将demo.pc加进工程(),如下图所示:
4、添加c文件,具体是使用上一步同样方法,在文件名里输入demo.c,因为此时该文件并不存在,所以会出现下面提示对话框。单击是,这样就将.c文件增加到工程文件。注意,demo.c会在预编译之后生成。
5、增加SQLLIB库。具体是:在FileView页面中选中Source Fil,选择Add Files To Folder,将oraSQL10.LIB文件添加到工程,该文件一般在Oracle安装文件目录下的precomp\lib子目录下。如下图:
6、设置预编译命令。具体是在右键选中demo.pc,在右键菜单中选择setting,在Command编辑框中输入:proc F:\MyProSrc\ProC\Demo\demo.pc,意思是调用proc.exe,对文件F:\MyProSrc\ProC\Demo\demo.pc进行预编译,在Outputs编辑框中输入:F:\MyProSrc\ProC\Demo\demo.c,意思为预编译的输出文件为:F:\MyProSrc\ProC\Demo\demo.c,如下图:
7、在完成上述设置之后,即可建立并生成可执行文件。按Ctrl+F5快捷键,Visual C++将调用proc工具进行预编译,将pc源程序转为c代码,然后可以编译c代码生成目标代码,最后链接目标代码和sqllib库文件,最终生成可执行文件。程序运行效果图如下: