• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 数据库 >> 详细内容
 

推荐文章

  • SQL数据库的备份、压缩与SQL数据库数据处理的方法
  • 《MySQL管理员指南》之一----MySQL安全性指南
  • 压缩SQL数据库
  • 实例讲解MYSQL数据库的查询优化技术
  • MySQL查询优化技术讲座
 
 

热点文章

  • 安装SQL Server 2005实例环境图解
  • SQL数据库的备份、压缩与SQL数据库数据处理的方法
  • SQL SERVER 2005数据库镜像
  • SQL Server 性能优化工具
  • SQL数据库还原出现错误112(磁盘空间不足)的解决办法
  • 支持中文的MySQL 5.1+ 全文检索分词插件
  • MySQL数据导入导出方法与工具mysqlimport
  • VS.NET中构建数据库应用程序
  • 如何使用SQL Server 2000中的XML功能
  • Server 2005性能排错
  • 《MySQL管理员指南》之一----MySQL安全性指南
  • SQL Server 2000中的SQL语言简介
 
 

相关文章

  • 将ORACLE数据库的数据倒入到EXCEL中的方法
  • Oracle数据库中索引的维护
 
 

百度搜索

 
 

用VC++开发Oracle数据库应用程序详解

  • 阅览次数:
  • 文章来源: cp整理
  • 原文作者: 不详
  • 整理日期: 2007-04-12
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

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和PRO*PL/I六种。程序员用相应的高级语言编写嵌入SQL语句的PRO源程序(若用C语言则称为 PRO*C源程序),然后运行相应的预编译程序,把嵌入的SQL语句转换为标准的Oracle调用并生成目标源程序,即纯高级语言格式的源程序,最后将这些源程序加入用户的程序中调用。

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源程序,将该程序插入到用户工程文件中,并在需要对插入函数进行调用的模块中说明函数,然后就可以在此模块中调用所需的函数

[1] [2]

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号