首页  登陆  注册  博客集  下载频道  网络硬盘  学院论坛  家园
IT学院 网站地图 网站地图
收藏本站 收藏本站
高级搜索 高级搜索
 新闻IT新闻 互联网 微软 黑客新闻 网络网络协议 故障 网络管理 TCP/IP 无线技术 解决方案 黑客技术 漏洞 软件评测 安全资讯
 数据MSsql Oracle Mysql PL/SQL 备份 系统:Linux vista Windows FTP 防火墙 注册表 服务器行情 服务器应用 解决方案 WEB服务器
 墙纸风景壁纸 游戏壁纸 体育壁纸 汽车壁纸 人文壁纸 影视壁纸 广告壁纸 花卉壁纸 节日壁纸 动漫壁纸 明星壁纸 绘画壁纸 月历壁纸
当前位置: > 主页>数据库技术>Oracle>开发技术>用 VC 开 发 Oracle 数 据 库 应 用 程 序
热门文章排行
 
热门文章排行 ORACLE数据库应用开发常
用Ultra Search自建超级
浅谈oracle数据库的建模
Web应用开发工具 —— W
Oracle家电行业供应链及
ORACLE WEBDB Q 与 A
Oracle开发工具介绍
用 VC 开 发 Oracle 数
Delphi 3.0中连接数据库
使用Oracle实现实时通信
精采文章推荐
 
精采文章推荐 在不安装Oracle客户端的
最新更新文章
 
最新更新文章 在不安装Oracle客户端的
使用Oracle实现实时通信
Delphi 3.0中连接数据库
用 VC 开 发 Oracle 数
Oracle开发工具介绍
ORACLE WEBDB Q 与 A
Oracle家电行业供应链及
Web应用开发工具 —— W
浅谈oracle数据库的建模
用Ultra Search自建超级

用 VC 开 发 Oracle 数 据 库 应 用 程 序

编辑:   来源:  日期:2008-02-06   我要投稿      家园

  ____Oracle公司于1997年推出的Oracle 8数据库以其支持大数据库、多用户的高性能事务处理、支持业界各项工业标准、完整的安全和完整性控制、支持分布式数据库和分布处理,具有可移植性、可兼容性和可连接性等突出优点倍受用户喜爱。而在客户端的开发工具方面,Visual C++也因其强大的功能和高度的灵活性等特点深受广大程序员的喜爱。本文旨在介绍使用Visual C++开发基于Oracle数据库应用程序的两种方法。
  
  ____使用PRO*C开发数据库应用
  
  ____1.PRO*C工作原理
  
  ____PRO系列是Oracle公司提供的在第三代高级程序设计语言中嵌入SQL语句来访问数据库的一套预编译程序,包括PRO*Ada、PRO*C、PRO*COBOL、PRO*Fortran、PRO*Pascal和P RO*PL/I六种。程序员用相应的高级语言编写嵌入SQL语句的PRO源程序(若用C语言则称为 PRO*C源程序),然后运行相应的预编译程序,把嵌入的SQL语句转换为标准的Oracle调用并生成目标源程序,即纯高级语言格式的源程序,最后将这些源程序加入用户的程序中调用 (其处理过程如下图)。
  
  
  
  图1
  
  ____Oracle预编译程序提供如下功能:
  
  ____能用六种通用的高级程序设计语言中的任何一种编写应用程序。
  
  ____遵循ANSI标准,在高级语言中嵌入SQL语句。
  
  ____可采用动态SQL方法,让程序在运行时接受或构造一个有效的SQL语句。
  
  ____实现Oracle内部数据类型和高级语言数据类型之间的自动转换。
  
  ____可通过在应用程序中嵌入PL/SQL事物处理块来改进性能。
  
  ____能在程序行和命令行上指定所需要的预编译可选项,并可在预编译的过程中改变它们的值。
  
  ____能全面检查嵌入的SQL数据操纵语句和PL/SQL块的文法和语义。
  
  ____可用SQL*Net并行存取多个地点的Oracle数据库。
  
  ____可把数组作为输入和输出程序变量使用。
  
  ____能对应用程序中的代码段进行条件预编译。
  
  ____提供了较强的异常处理功能。
  
  ____由此可见,通过预编译程序与其它高级语言的结合,既可以利用SQL强有力的功能和灵活性为数据库应用系统的开发提供强有力的手段,又可以充分利用高级语言自身在系统开发方面的优势,从而提供一个完备的基于Oracle数据库应用程序的开发解决方案。
  
  ____2.在VC中使用PRO*C
  
  ____每个PRO*C源文件一般由程序头和程序体两部分组成。程序头包含宿主变量(SQL语句中所包含的变量)说明、通讯区定义和C外部表示符的说明等。程序体一般是由若干函数组成,这些函数内含有SQL语句(以EXEC SQL起头的语句)。
  
  ____PRO*C支持的数据类型包括:VARCHAR2(变长字符串)、NUMBER(二进制数)、INTGER(有符号整数)、FLOAT(浮点数)、STRING(以NULL结尾的字符串)、VARNUM(变长二进制数)、 LONG(变长字符串)、VARCHAR(变长字符串)、ROWID(二进制值)、DATE(定长日期/时间值 )、VARRAW(变长二进制数据)、RAW(定长二进制数据) 、LONGRAW(变长二进制数据)、UN SIGNED(无符号整数)、LONGVARCHAR(变长字符串)、LONGVARRAW(变长二进制数据)、CHA R(定长字符串)、CHARZ(C中定长以NULL结尾的字符串)、MLSLABEL(变长二进制数据)。
  
  ____在PRO*C中不能使用‘l’或‘u’作词尾或‘0x’作词头修饰常量;在SQL语句中使用单引号来定义字符串,用双引号来定义特殊的或小写字符的标识符(如表名等);SQL语句中不允许使用C中的寻址、间接、位逻辑、复合赋值、?=、--、++、%、<<、>>操作符,并且用NOT、AND、OR、=来分别代替!、&&、||、==。
  
  ____下面的程序是一个连接数据库的PRO*C源程序例子。
  
  ____#include //声明SQL通讯区
  
  ____#include
  
  ____#include
  
  ____EXEC SQL BEGIN DECLARE SECTION;
  
  ____VARCHAR username[20]; //声明宿主变量
  
  ____VARCHAR password[20];
  
  ____VARCHAR dbname[20];
  
  ____EXEC SQL END DECLARE SECTION;
  
  ____void db_connect()
  
  ____{
  
  ____strcpy((char *)username.arr,"SCOTT");
  
  ____username.len = strlen((char *)username.arr);
  
  ____strcpy((char *)password.arr,"TIGER");
  
  ____password.len = strlen((char *)password.arr);
  
  ____strcpy((char *)dbname.arr,"SUNDB");
  
  ____dbname.len = strlen((char *)dbname.arr);
  
  ____EXEC SQL WHENEVER SQLERROR STOP;
  
  ____//隐式异常处理
  
  ____EXEC SQL CONNECT :usernameIDENTIFIED BY :password USING :dbname;
  
  ____/*if (sqlca.sqlcode != 0) //显式异常处理
  
  ____{
  
  ____AfxMessageBox("\n与 Oracle 数据库连接失败!");
  
  ____return;
  
  ____}*/
  
  ____}
  
  ____在VC中使用PRO*C时,先用PRO*C编写所需的操作数据库的子程序,再运行PRO*C预编译程序把PRO*C源程序转成相应的.CPP源程序,将该程序插入到用户工程文件中,并在需要对插入函数进行调用的模块中说明函数,然后就可以在此模块中调用所需的函数。
  
  ____使用ODBC中间件访问数据库
  
  ____1.ODBC工作原理
  
  ____ODBC是Open Database Connect(开放数据库互连)的简称,它是由Microsoft公司于1 991年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件。它通过使用相应应用平台上和所需数据库对应的驱动程序与应用程序的交互来实现对数据库的操作,避免了在应用程序中直接调用与数据库相关的操作,从而提供了数据库的独立性。
上一页12 下一页


上一篇:Oracle开发工具介绍  
下一篇:Delphi 3.0中连接数据库的三种方式
 关键字:  
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:

   文章评论:(0条)
  
 请留名: 匿名评论   点击查看所有评论
 

  责任编辑:IT学院  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。