网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.关于Oracle 9i 跳跃式索引扫描(I.
.Linux Shadow-Password-HOWTO.
.Linux中给Python2.2加DCOracle模.
.Oracle利用传输表空间导出导入数.
.Oracle网格计算中文资料—数据库.
.使用SQL*PLUS构建完美excel或htm.
.Oracle基本知识.
.ORACLE9I中建立自增字段的方法.
.如何知道表记录最后被更新的时间.
.Oracle10g自动归档的设置.
.安装好Oracle后SQL*Plus的操作初.
.在Solaris 10 X86上安装Oracle 1.
.Oracle数据库全文索引查询模板的.
.怎样在Oracle中执行一次基本的快.
.Oracle Database 10g:回滚监视.
.all installing oracle9i under .
.Oracle中对COLUMNS_UPDATED()返回.
.ORACLE学习笔记--性能优化四.
.如何在Oracle 中实现类似自动增加.
.使用Oracle Discoverer与OLAP选件.

用VC开发基于Oracle的数据库应用

发表日期:2008-2-9



  Oracle 数据库以其支持大数据量、多用户的高性能事务处理和完整的安全和完整性控制,支持分布式数据库和分布处理,具有可移植性、可兼容性、可连接性等优点备受用户喜爱,而在客户端的开发工具方面,Visual C++ 也因其强大的功能、高度的灵活性等特点深受广大程序员的喜爱, 本文将分别介绍使用Visual C++ 开发基于Oracle 数据库应用程序的两种方法。

集成VC和PRO*C

PRO系列是Oracle公司提供的在第三代高级程序设计语言中嵌入SQL语句来访问数据库的一套预编译程序,包括PRO*Ada、PRO*C、PRO*COBOL、PRO*Fortran、PRO*Pascal 和PRO*PL/I 六种。程序员用相应的高级语言编写嵌入SQL语句的PRO源程序(若用C 语言则称为PRO*C源程序)后运行相应的预编译程序,把嵌入的SQL语句转换为标准的Oracle调用并生成目标源程序,即纯高级语言格式的源程序,此后就可以将这些源程序加入用户的程序中调用。

通过预编译程序与其他高级语言的结合,既可以利用SQL强有力的功能和灵活性为数据库应用系统的开发提供强有力的手段,又可以充分利用高级语言自身在系统开发方面的优势,从而提供一个完备的基于Oracle数据库应用程序的开发解决方案。

一个PRO*C源文件一般由程序头和程序体两部分组成。程序头包含宿主变量(SQL语句中所包含的变量)说明、通信区定义和C外部表示符的说明等。程序体一般是由若干函数构成。

在VC中使用PRO*C时,先用PRO*C编写所需的操作数据库的子程序,再运行PRO*C预编译程序把PRO*C源程序转换成相应的CPP源程序,将该程序插入到用户工程文件中,并在需要对插入函数进行调用的模块中说明函数,然后就可以在此模块中调用所需的函数了。

通过ODBC访问数据库

ODBC(Open Database Connectivity,开放数据库互连)是由Microsoft公司于1991年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件。它通过使用相应应用平台上和所需数据库对应的驱动程序与应用程序的交互来实现对数据库的操作,避免了在应用程序中直接调用与数据库相关的操作,从而提供了应用程序的独立性。

Visual C++中提供了CDatabase、CRecordset、CRecordView、CDBException和CFieldExchange 五个类,这些类封装了ODBC SDK函数,从而使用户可以无需了解SDK函数的具体结构就可以很方便地操作支持ODBC的数据库。这五个类的主要作用如下:

CDatabase类: 封装了与数据库建立连接,控制事务的提交和回滚及执行SQL语句的方法。

CRecordset类:封装了大部分操纵数据库的方法,包括浏览、修改记录、控制游标移动、排序等操作。

CRecordView类: 提供了与recordset对象相连接的视,可以建立视中的控件与数据库数据的对应,同时支持移动游标、修改记录等操作。

CDBException类: 提供了对数据库操作的异常处理,可以获得操作异常的相关返回代码。

CFieldExchange类: 提供了用户变量与数据库字段之间的数据交换,假如不需要使用自定义类型,程序员将不用直接调用该类的函数,MFC Wizard将自动为程序员建立连接。

两种方法的比较

前面所述的这两种方法在Visual C++中都可以很方便地开发出基于Oracle数据库的应用程序,同时,这两种方法又各有其优缺点。ODBC由于有MFC 强大的类库支持而使得编程实现非常方便,同时可移植性也很好,在异构的数据库之间移植也只需更改很少的一部分代码,但是,从ODBC的实现机制可以看出,与PRO*C相比,应用程序需要经过ODBC驱动程序治理器和ODBC驱动程序两层才能和数据库通信接口建立联系,而PRO*C是直接与通信接口联系,因此建立在ODBC上的应用程序的执行效率相对低一些。PRO*C具有执行效率高,支持嵌入式PL/SQL块等Oracle自身特有的优点,但正因为有了这些优点,使得用PRO*C开发出的应用程序无法向异构数据库平台移植。作为程序员,在实际开发中可以依据实际情况选择最合适的开发方法。
上一篇:详解 Oracle 10g 中 MERGE 功能的增强 人气:836
下一篇:SCO unix 下定时备份 Oracle dmp 文件 人气:796
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐