Pro *C/C++学习笔记(一)



 



     上周六无事,抽空学习了一下Pro *C/C++,使用的参考书是《精通Oracle 10gPro*C/C++编程》。个人感觉Pro *C/C++语法不难,就是环境设置有点麻烦。编程就是这样,开头是一个坎,编译环境设置不好,看不到输出结果,就难以获得那种成就感。下面我以一个简单例子来说明Pro *C/C++的编译环境的设置。这次开发环境是:Win XP sp2,VC++6.0,


OCI: version 9.2, Oracle DataBase 10g Enterprise Edition Release 10.1.0.2.0。



书上说Oracle为Windows平台提供了Pro *C/C++图形界面工具,但是我装的这个Oracle 10g并没有带这个图形界面工具。呵呵,还是用控制台那个Proc吧。这次进行Pro *C/C++大致分为四个步骤:



       指定可执行文件路径、头文件路径和库文件路径



指定可执行文件路径实际上是在Visual C++指定运行Oracle 10g的Pro*C/C++预编译器proc.exe。这个proc.exe在服务器端和客户端都有,我想是一样的。这里是使用的是服务器端的。具体做法是:在VC 6.0的TOOl->Option菜单项的Directory选项卡里,在Show directoryes for选项里选择Executable files,将proc.exe的路径加进去,如下图所示:




Pro *C/C++学习笔记_database


至于加头文件和库文件,我想从事过二次开发的人都比较清楚,我就不一一细说了。具体要加哪些头文件呢,主要是两个,一个是sqlca.h所在的目录,一般是precomp/public,另一个是OCI的头文件,如下图所示:


Pro *C/C++学习笔记_编程_02


至于库文件,只需加OCI的库文件,如下图所示:


 

Pro *C/C++学习笔记_编程_03


以后可能还要根据需要添加相应的头文件和库文件,这里暂且不表。


       使用配置文件


     使用配置文件实际上是为了设置预编译选项。因为刚入门,这次我们使用系统配置文件,但是系统配置文件并不能完全满足我们的需要,如系统配置文件并不包含解析内嵌SQL语法,因此我们要对系统配置文件编辑一下。系统配置文件一般是%precomp/admin/pcscfg.cfg。这里要根据个人的Oracle安装目录来找,我的是:D:/Oracle/Server/precomp/admin/pcscfg.cfg。使用记事本(其它文本编辑工具也行)打开这个文件,在里面添加如下内容:

parse=full 
 
  

   include="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头文件路径。


 


       建立工程文件,正式开始编程


     激动人心的编程时刻终于到来了。首先使用记事本新建一个文本文件,输入以下代码:

#include <stdio.h> 
 
  

   #include <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加进工程(),如下图所示:


Pro *C/C++学习笔记_oracle_04


然后使用同样方法,在文件名里输入demo.c,


因为此时该文件并不存在,所以会出现下面提示对话框:


 

Pro *C/C++学习笔记_database_05


单击是,这样就将.c文件增加到工程文件。注意,demo.c会在预编译之后生成。


 

Pro *C/C++学习笔记_oracle_06


然后增加SQLLIB库,具体是:在FileView页面中选中Source Fil,选择Add Files To Folder,将oraSQL10.LIB文件添加到工程,该文件一般在Oracle安装文件目录下的precomp/lib子目录下。如下图:


 

Pro *C/C++学习笔记_编程_07


建立预编译命令,具体如下:


1.右键选中demo.pc,如下图:


Pro *C/C++学习笔记_编程_08


2.在右键菜单中选择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,如下图


 

Pro *C/C++学习笔记_工具_09


按确定后保存设置。


 


在完成上述设置之后,即可建立并生成可执行文件。按Ctrl+F5快捷键,Visual C++将调用proc工具进行预编译,将pc源程序转为c代码,然后可以编译c代码生成目标代码,最后链接目标代码和sqllib库文件,最终生成可执行文件。程序运行效果图如下:


Pro *C/C++学习笔记_oracle_10


 


                                                                                     朱金灿


 


     上周六无事,抽空学习了一下Pro *C/C++,使用的参考书是《精通Oracle 10gPro*C/C++编程》。个人感觉Pro *C/C++语法不难,就是环境设置有点麻烦。编程就是这样,开头是一个坎,编译环境设置不好,看不到输出结果,就难以获得那种成就感。下面我以一个简单例子来说明Pro *C/C++的编译环境的设置。这次开发环境是:Win XP sp2,VC++6.0,


OCI: version 9.2, Oracle DataBase 10g Enterprise Edition Release 10.1.0.2.0。


书上说Oracle为Windows平台提供了Pro *C/C++图形界面工具,但是我装的这个Oracle 10g并没有带这个图形界面工具。呵呵,还是用控制台那个Proc吧。这次进行Pro *C/C++大致分为四个步骤:


       指定可执行文件路径、头文件路径和库文件路径


指定可执行文件路径实际上是在Visual C++指定运行Oracle 10g的Pro*C/C++预编译器proc.exe。这个proc.exe在服务器端和客户端都有,我想是一样的。这里是使用的是服务器端的。具体做法是:在VC 6.0的TOOl->Option菜单项的Directory选项卡里,在Show directoryes for选项里选择Executable files,将proc.exe的路径加进去,如下图所示:


Pro *C/C++学习笔记_database


至于加头文件和库文件,我想从事过二次开发的人都比较清楚,我就不一一细说了。具体要加哪些头文件呢,主要是两个,一个是sqlca.h所在的目录,一般是precomp/public,另一个是OCI的头文件,如下图所示:


Pro *C/C++学习笔记_编程_02


至于库文件,只需加OCI的库文件,如下图所示:


 

Pro *C/C++学习笔记_编程_03


以后可能还要根据需要添加相应的头文件和库文件,这里暂且不表。


       使用配置文件


     使用配置文件实际上是为了设置预编译选项。因为刚入门,这次我们使用系统配置文件,但是系统配置文件并不能完全满足我们的需要,如系统配置文件并不包含解析内嵌SQL语法,因此我们要对系统配置文件编辑一下。系统配置文件一般是%precomp/admin/pcscfg.cfg。这里要根据个人的Oracle安装目录来找,我的是:D:/Oracle/Server/precomp/admin/pcscfg.cfg。使用记事本(其它文本编辑工具也行)打开这个文件,在里面添加如下内容:


parse=full 
 
  

   include="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头文件路径。


 


       建立工程文件,正式开始编程


     激动人心的编程时刻终于到来了。首先使用记事本新建一个文本文件,输入以下代码:

#include <stdio.h> 
 
  

   #include <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加进工程(),如下图所示:


Pro *C/C++学习笔记_oracle_04


然后使用同样方法,在文件名里输入demo.c,


因为此时该文件并不存在,所以会出现下面提示对话框:


 

Pro *C/C++学习笔记_database_05


单击是,这样就将.c文件增加到工程文件。注意,demo.c会在预编译之后生成。


 

Pro *C/C++学习笔记_oracle_06


然后增加SQLLIB库,具体是:在FileView页面中选中Source Fil,选择Add Files To Folder,将oraSQL10.LIB文件添加到工程,该文件一般在Oracle安装文件目录下的precomp/lib子目录下。如下图:


 

Pro *C/C++学习笔记_编程_07


建立预编译命令,具体如下:


1.右键选中demo.pc,如下图:


Pro *C/C++学习笔记_编程_08


2.在右键菜单中选择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,如下图


 

Pro *C/C++学习笔记_工具_09


按确定后保存设置。


 


在完成上述设置之后,即可建立并生成可执行文件。按Ctrl+F5快捷键,Visual C++将调用proc工具进行预编译,将pc源程序转为c代码,然后可以编译c代码生成目标代码,最后链接目标代码和sqllib库文件,最终生成可执行文件。程序运行效果图如下:


Pro *C/C++学习笔记_oracle_10