⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0505003.htm

📁 VC知识库5_chm_decompile_20040520_210715
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title></title>
<link rel="stylesheet" type="text/css" href="../../vckbase.css">
</head>

<body>

<div align="justify">
  <table border="0" width="100%" class="font" height="57">
    <tr>
      <td width="27%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
      <font color="#800080">VC知识库(五)</font>
      </td>
      <td width="73%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
      <font color="#800080">www.vckbase.com</font>
      </td>
    </tr>
    <tr>
      <td width="100%" height="4" class="header" valign="top" align="center" colspan="2">
      <hr>
      </td>
    </tr>
    <tr>
      <td width="100%" height="17" class="header" valign="top" align="center" colspan="2">


<font color="#0000c0">


用VC开发基于ORACLE数据库应用程序的两种方法</font>


      </td>
    </tr>
    <tr>
      <td width="100%" height="17" class="info" align="center" colspan="2">


北京航空航天大学计算机科学与工程系<br>


黎杰  麦中凡 
      </td>   
    </tr>   
    <tr>  
      <td width="100%" height="22" class="font" colspan="2"> 
        <hr> 
      </td>   
    </tr>  
    <tr>  
      <td width="100%" height="5" class="font" colspan="2">  
 
 
<center> 
 
 
<font color="#0000c0"></font> 
 
 
</center> 
 
 
<p><font color="#ffffff">----</font> 
 
 
1. 引 言 
 
 
<p><font color="#ffffff">----</font> 
 
 
    ORACLE 公 司 自1979 年 推 出 基 于SQL 标 准 的 关 系 数 据 库 产 品 到1997 年 版 本8 的 推 出,ORACLE 数 据 库 以 其 支 持 大 数 据 库、 多 用 户 的 高 性 能 事 务 处 理, 对 业 界 各 项 工 业 标 准 的 支 持, 完 整 的 安 全 和 完 整 性 控 制, 支 持 分 布 式 数 据 库 和 分 布 处 理, 具 有 可 移 植 性、 可 兼 容 性 和 可 连 接 性 等 突 出 优 点 倍 受 用 户 喜 爱, 根 据IDG1992 年 全 球UNIX 数 据 库 的 市 场 报 告,ORACLE 占 市 场 销 售 量 的50%。 而 在 客 户 端 的 开 发 工 具 方 面,Visual C++ 也 因 其 强 大 的 功 能 和 高 度 的 灵 活 性 等 特 点 深 受 广 大 程 序 员 的 喜 爱, 因 此 本 文 旨 在 介 绍 使 用Visual C++ 开 发 基 于ORACLE 数 据 库 应 用 程 序 的 两 种 方 法。 
 
 
<p><font color="#ffffff">----</font> 
 
 
2. 使 用PRO*C 开 发 数 据 库 应 用 
 
 
<p><font color="#ffffff">----</font> 
 
 
2.1 PRO*C 工 作 原 理 
 
 
<p><font color="#ffffff">----</font> 
 
 
PRO 系 列 是ORACLE 公 司 提 供 的 在 第 三 代 高 级 程 序 设 计 语 言 中 嵌 入SQL 语 句 来 访 问 数 据 库 的 一 套 预 编 译 程 序, 包 括PRO*Ada、PRO*C、PRO*COBOL、PRO*Fortran、PRO*Pascal 和PRO*PL/I 六 种。 程 序 员 用 相 应 的 高 级 语 言 编 写 嵌 入SQL 语 句 的PRO 源 程 序( 若 用C 语 言 则 称 为PRO*C 源 程 序) 后 运 行 相 应 的 预 编 译 程 序, 把 嵌 入 的SQL 语 句 转 换 为 标 准 的ORACLE 调 用 并 生 成 目 标 源 程 序, 即 纯 高 级 语 言 格 式 的 源 程 序, 然 后 就 可 以 将 这 些 源 程 序 加 入 用 户 的 程 序 中 调 用, 其 处 理 过 程 如 下 图。 
 
 
<p><font color="#ffffff">----</font> 
 
 
ORACLE 预 编 译 程 序 提 供 如 下 功 能: 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑴ 能 用 六 种 通 用 的 高 级 程 序 设 计 语 言 中 的 任 何 一 种 编 写 应 用 程 序。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑵ 遵 循ANSI 标 准, 在 高 级 语 言 中 嵌 入SQL 语 句。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑶ 可 采 用 动 态SQL 方 法, 让 程 序 在 运 行 时 接 受 或 构 造 一 个 有 效 的SQL 语 句。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑷ 实 现ORACLE 内 部 数 据 类 型 和 高 级 语 言 数 据 类 型 之 间 的 自 动 转 换。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑸ 可 通 过 在 应 用 程 序 中 嵌 入PL/SQL 事 物 处 理 块 来 改 进 性 能。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑹ 能 在 程 序 行 和 命 令 行 上 指 定 所 需 要 的 预 编 译 可 选 项, 并 可 在 预 编 译 的 过 程 中 改 变 它      们 的 值。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑺ 能 全 面 检 查 嵌 入 的SQL 数 据 操 纵 语 句 和PL/SQL 块 的 文 法 和 语 义。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑻ 可 用SQL*Net 并 行 存 取 多 个 地 点 的ORACLE 数 据 库。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑼ 可 把 数 组 作 为 输 入 和 输 出 程 序 变 量 使 用。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑽ 能 对 应 用 程 序 中 的 代 码 段 进 行 条 件 预 编 译。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 ⑾ 提 供 了 较 强 的 异 常 处 理 功 能。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 由 此 可 见, 通 过 预 编 译 程 序 与 其 它 高 级 语 言 的 结 合, 既 可 以 利 用SQL 强 有 力 的 功 能 和 灵 活 性 为 数 据 库 应 用 系 统 的 开 发 提 供 强 有 力 的 手 段, 又 可 以 充 分 利 用 高 级 语 言 自 身 在 系 统 开 发 方 面 的 优 势, 从 而 提 供 一 个 完 备 的 基 于ORACLE 数 据 库 应 用 程 序 的 开 发 解 决 方 案。 
 
 
<p><font color="#ffffff">----</font> 
 
 
2.2  在VC 中 使 用PRO*C 
 
 
<p><font color="#ffffff">----</font> 
 
 
每 个PRO*C 源 文 件 一 般 由 程 序 头 和 程 序 体 两 部 分 组 成。 程 序 头 包 含 宿 主 变 量(SQL 语 句 中 所 包 含 的 变 量) 说 明、 通 讯 区 定 义 和C 外 部 表 示 符 的 说 明 等。 程 序 体 一 般 是 由 若 干 函 数 组 成, 这 些 函 数 内 含 有SQL 语 句( 以EXEC SQL 起 头 的 语 句)。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 PRO*C 支 持 的 数 据 类 型 包 括VARCHAR2( 变 长 字 符 串)、NUMBER( 二 进 制 数)、INTGER( 有 符 号 整 数)、FLOAT( 浮 点 数)、STRING( 以NULL 结 尾 的 字 符 串)、VARNUM( 变 长 二 进 制 数)、LONG( 变 长 字 符 串)、VARCHAR( 变 长 字 符 串)、ROWID( 二 进 制 值)、DATE( 定 长 日 期/ 时 间 值)、VARRAW( 变 长 二 进 制 数 据)、RAW( 定 长 二 进 制 数 据) 、LONGRAW( 变 长 二 进 制 数 据)、UNSIGNED( 无 符 号 整 数)、LONGVARCHAR( 变 长 字 符 串)、LONGVARRAW( 变 长 二 进 制 数 据)、CHAR( 定 长 字 符 串)、CHARZ(C 中 定 长 以NULL 结 尾 的 字 符 串)、MLSLABEL( 变 长 二 进 制 数 据)。 
 
 
<p><font color="#ffffff">----</font> 
 
 
在PRO*C 中 不 能 使 用'l' 或'u' 作 词 尾 或'0x' 作 词 头 修 饰 常 量; 在SQL 语 句 中 使 用 单 引 号 来 定 义 字 符 串, 用 双 引 号 来 定 义 特 殊 的 或 小 写 字 符 的 标 识 符( 如 表 名 等);SQL 语 句 中 不 允 许 使 用C 中 的 寻 址、 间 接、 位 逻 辑、 复 合 赋 值、?=、-、++、%、<<、>> 操 作 符 并 且 用NOT、AND、OR、= 代 替!、&&、||、==。 
 
 
<p><font color="#ffffff">----</font> 
 
 
 下 面 的 程 序 是 一 个 联 结 数 据 库 的PRO*C 源 程 序 例 子。 
 
 
<pre>


#include &lt; sqlca.h &gt;	//声明SQL通讯区


#include &lt; string.h &gt;


#include &lt; afxwin.h &gt;


EXEC SQL BEGIN DECLARE SECTION;


     VARCHAR  username[20];	//声明宿主变量


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -