Pro *C/C++初始

转:http://blog.csdn.net/clever101/article/details/1792075

上周六无事,抽空学习了一下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++大致分为四个步骤:

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

指定可执行文件路径实际上是在Visual C++指定运行Oracle
10g的Pro*C/C++预编译器proc.exe。这个proc.exe在服务器端和客户端都有,我想是一样的。这里是使用的是服务器端的。具体做法是:在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=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头文件路径。

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

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

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

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

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

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

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

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

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

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,如下图

按确定后保存设置。

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


Pro *C/C++初始

时间: 2024-10-11 05:47:45

Pro *C/C++初始的相关文章

Pro Git 读书笔记 初识Git

版本控制系统即VCS(version control system)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 除了对软件源代码的文件作版本控制,实际上,你可以对任何类型的文件进行版本控制.有了版本控制我们就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致bug出现的原因,又是谁在何时报告了某个功能缺陷等等. 分布式版本控制系统(Distributed Version Cont

IDA.Pro权威指南 读书笔记

http://www.pediy.com/kssd/pediy12/142766.html 标 题:IDA.Pro权威指南 读书笔记[Made By C_lemon] 作 者:Dstlemoner 时 间:2011-11-14 11:56:17 链 接:http://bbs.pediy.com/showthread.php?t=142766    IDA为反汇编 和逆向破解的 静态分析利器 ! 虽然是利器,但是你不会用的话~那就另当别论了. →     唉.对于刚入门的新手来说,看前人走过的路程

[Android Pro] Android应用性能测试之CPU和内存占用(转载)

首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基于Linux的平台,所有我们可以通过Linux的资源监控命令来实现对android平台的资源实时监控. 要做到上边的测试环境的实现,需要具备以下几点: 1.被测试的手机具备root权限:因为涉及到底层的linux命令,需要读取或执行相应的文件.至于如何root你的手机,不同型号的手机root的方法不

ipad pro 为什么不行

TalkingData公布的数据显示,iPad?Pro在中国发行首月的销量仅为49?300台,而此前iPad?Air?2发行首月后销量曾高达55.7万台.那么到底是什么原因,让这个被寄予厚望的iPad Pro未能成为苹果的“关键先生”? 不忍直视的在华销量 号称要“取代PC”,拥有12.9英寸大屏的iPad Pro的市场表现一直为人所关注.据调研公司TalkingData的最新报告,在上市一个多月后,iPad Pro在中国的激活量仅4.9万台,远远低于销量预期.相比而言,iPad Air 2在中

【转】 Pro Android学习笔记(六十):Preferences(4):MultiSelect List Preference

目录(?)[-] XML文件 在设备中保存 读出信息 ListPreference提供单选列表,我们可以通过CheckBoxPreference提供多选列表.此外,Android在3.0后提供MultiSelectListPreference,它的实现和ListPreference相似,不同的是还可以不选择或者多个选择.如图所示. XML文件 在复合例子中加入相关的内容,如下.同样地可以采用@array来对entry和entryvalue进行定义,使用比CheckBox Preference要方

【转】 Pro Android学习笔记(四二):Fragment(7):切换效果

目录(?)[-] 利用setTransition 利用setCustomAnimations 通过ObjectAnimator自定义动态效果 程序代码的编写 利用fragment transaction进行切换,很方便提供切换的效果. 利用setTransition() 在Pro Android学习笔记(三九):Fragment(4):基础小例子-续的“Step 4:实现showDetail(int index),如何管理fragment”中,介绍了如何在容器FrameLayout中通过frag

TextMesh Pro Emoji Align With Text(表情和文字对齐)

前言 MMO游戏中需要富文件组件,大体功能包括图文混排,表情,超链接,文字动画等富文本功能,且DC数占用少. 本文选择Unity免费提供的TextMesh Pro 解决方案. 软件环境 Unity3D 5.3.7p4 TextMesh Pro 1.0.555.0b11(Jul 06.2017) TexturePack 3.x TextMeshPro文档和资料 Asset Store(免费下载):https://www.assetstore.unity3d.com/cn/#!/content/84

在MacBook Pro上设置Java开发环境

好吧,我去了地球的另一边,并且因为我的PC不在旁边,只有一台MacBook Pro可以用于开发.这篇文章应该被看作是一个加强书签,我列出了使得MacBook能实现目的的所有必需安装的工具,即用于Java和稍后也会用于JavaScript的开发. 需要提一下的是,直到现在,我仍然是Windows用户(XP / 7)和Linux(Ubuntu /Mint/Cent OS).在写这篇文章的时候,我的MacBook Pro上运行的是OS X Yosemite Version 10.10.5. JDK 所

CSimsoft.Trelis.Pro.v15.0.0.Win64 1CD有限元分析

CSimsoft.Trelis.Pro.v15.0.0.Win64 1CD有限元分析Trelis 是高端的FEA和CFD前处理商业软件,由csimsoft公司出品,基于桑迪亚国家实验室开发的Cubit?. 二十多年来,csimsoft公司与Sandia国家实验室共同开发Cubit,同时是软件用于学术或商业用途的的授权经销商.名称的更迭Csimsoft与桑迪亚国家实验室以Cubit为研究平台改善并开发新的网格生成算法已有二十余年. 在2010年,csimsoft公司开始转换Cubit研发平台为可公