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

📄 01_9_14_11.asp.html

📁 有用的VC教程,包括编程思想编程技巧程序效率等方面的指导
💻 HTML
📖 第 1 页 / 共 2 页
字号:
	username.len = strlen((char *)username.arr);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	strcpy((char *)password.arr,"TIGER");</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	password.len = strlen((char *)password.arr);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	strcpy((char *)dbname.arr,"SUNDB");</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	dbname.len = strlen((char *)dbname.arr);</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	EXEC SQL WHENEVER SQLERROR STOP;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	// 隐 式 异 常 处 理</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	EXEC SQL CONNECT :</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
username IDENTIFIED BY :password USING :dbname;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
	/*if (sqlca.sqlcode != 0)</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
					// 显 式 异 常 处 理</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
		AfxMessageBox("\n 与 Oracle 数 据 库 连 接 失 败!");</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
		return;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
   }*/</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
在VC 中 使 用PRO*C 时, 先 用PRO*C 编 写所 需 的 操 作 数 据 库 的 子 程 序, 再 运 行PRO*C 预 编 译 程 序把PRO*C 源 程 序 转 成 相应 的CPP 源 程 序, 将 该 程 序 插 入 到 用户 工 程 文 件 中 并 在 需 要 对 插 入 函 数 进 行 调 用 的 模 块中 说 明 函 数, 然 后 就 可以 在 此 模 块 中 调 用 所 需 的 函数。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b>3. 使 用ODBC 中 间 件 访 问 数 据 库</b></td>
    </tr></table><table width=100% ><tr>
      <td class=a14> <i>3.1 ODBC 工 作 原 理 </i></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
ODBC 是Open Database Connect 即 开 放 数 据 库互 连 的 简 称, 它 是 由Microsoft 公 司 于1991 年 提 出 的 一 个 用于 访 问 数 据 库 的 统 一 界 面 标 准, 是 应 用 程 序 和 数 据 库系 统 之 间 的 中 间 件。 它 通 过 使 用 相 应 应 用 平 台 上 和 所需 数 据 库 对 应的 驱 动 程 序 与 应 用 程 序 的 交 互 来 实 现对 数 据 库 的 操 作,避 免 了 在 应 用 程 序 中 直 接 调 用 与 数据 库 相 关 的 操 作,从 而 提 供 了 数 据 库 的 独 立 性。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
ODBC 主 要 由 驱 动 程 序 和 驱 动 程 序管 理 器 组 成。 驱 动 程 序 是 一 个 用 以 支 持ODBC 函 数 调 用 的模 块( 在WIN95 下 通常 是 一 个DLL), 每 个 驱 动 程 序 对 应 于相 应 的 数 据 库, 当应 用 程 序 从 基 于 一 个 数 据 库 系 统 移植 到 另 一 个 时, 只 需 更 改 应 用 程 序 中 由ODBC 管 理 程 序 设定 的 与 相 应 数 据 库 系 统 对 应 的 别 名 即 可。 驱 动 程 序 管理 器( 包 含 在ODBC32.DLL 中) 可 链 接 到 所 有ODBC 应 用 程 序 中,它 负 责 管 理应 用 程 序 中ODBC 函 数 与DLL 中 函 数 的 绑 定。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
ODBC 使 用 层 次 的 方 法 来 管 理 数 据库, 在 数 据 库 通 信 结 构 的 每 一 层, 对 可 能 出 现 依 赖 数据 库 产 品 自 身 特 性的 地 方,ODBC 都 引 入 一 个 公 共 接 口 以解 决 潜 在 的 不 一 致性, 从 而 很 好 地 解 决 了 基 于 数 据 库系 统 应 用 程 序 的 相 对 独 立 性, 这 也 是ODBC 一 经 推 出 就 获得 巨 大 成 功 的 重 要 原 因 之 一。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
从 结 构 上 分,ODBC 分 为 单 束 式 和多 束 式 两 类。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
⑴ 单 束 式 驱 动 程 序 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
单 束 式 驱 动 程 序 介 于 应 用 程 序和 数 据 库 之 间, 像 中 介 驱 动 程 序 一 样 数 据 提 供 一 个 统一 的 数 据 访 问 方 式。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
当 用 户 进 行 数 据 库 操 作 时, 应用 程 序 传 递 一 个ODBC 函 数 调 用 给ODBC 驱 动 程 序 管 理 器, 由ODBC API 判 断 该 调 用 是 由 它 直 接 处 理 并 将 结 果 返 回 还 是 送交 驱 动 程 序 执 行 并将 结 果 返 回。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
由 上 可 见, 单 束 式 驱 动 程 序 本身 是 一 个 数 据 库 引 擎, 由 它 直 接 可 完 成 对 数 据 库 的 操作, 尽 管 该 数 据 库 可 能 位 于 网 络 的 任 何 地 方。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
多 束 式 驱 动 程 序</td></tr></table><table width=100% ><tr><td class=a14>
多 束 式 驱 动 程 序 负 责 在 数 据 库引 擎 和 客 户 应 用 程 序 之 间 传 送 命 令 和 数 据, 它 本 身 并不 执 行 数 据 处 理 操 作 而 用 于 远 程 操 作 的 网 络 通 信 协议 的 一 个 界 面。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
前 端 应 用 程 序 提 出 对 数 据 库 处理 的 请 求, 该 请 求 转给ODBC 驱 动 程 序 管 理 器, 驱 动 程 序管 理 器 依 据 请 求 的 情 况, 就 地 完 成 或 传 给 多 束 驱 动 程序, 多 束 式 驱 动 程 序 将 请 求 翻 译 为 特 定 厂 家 的 数 据 库通 信 接 口( 如Oracle 的SQLNet) 所 能 理 解 的 形 式 并 交 于 接 口去 处 理, 接 口 把 请 求 经 网 络 传 送 给 服 务 器 上 的 数 据 引擎, 服 务 器 处 理 完 后 把 结 果 发 回 给 数 据 库 通 信 接 口,数 据 库 接 口 将 结 果 传 给 多 束 式ODBC 驱 动 程 序, 再 由 驱 动程 序 将 结 果 传 给 应 用 程 序。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <i>3.2 在VC 中 使 用ODBC </i></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
Visual C++ 中 提 供 了CDatabase、CRecordset、CRecordView、CDBException 和CFieldExchange 五 个 类, 这 些 类 封 装 了ODBC SDK 函 数, 从 而 使用 户 可 以 无 需 了 解SDK 函 数 就 可 以 很 方 便 地 操 作 支 持ODBC 的 数 据 库。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CDatabase 类: 封 装 了 与 数 据 库 建 立连 接, 控 制 事 务 的 提 交 和 回 滚 及 执 行SQL 语 句 的 方 法。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CRecordset 类: 封 装 了 大 部 分 操 纵 数据 库 的 方 法, 包 括 浏 览、 修 改 记 录, 控 制 游 标 移 动,排 序 等 操 作。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CRecordView 类: 提 供 了 与recordset 对 象相 连 接 的 视, 可 以 建 立 视 中 的 控 件 与 数 据 库 数 据 的 对应, 同 时 支 持 移 动 游 标, 修 改 记 录 等 操 作。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CDBException 类: 提 供 了 对 数 据 库 操作 的 异 常 处 理, 可以 获 得 操 作 异 常 的 相 关 返 回 代 码。 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CFieldExchange 类: 提 供 了 用 户 变 量 与数 据 库 字 段 之 间 的 数 据 交 换, 如 果 不 需 要 使 用 自 定 义类 型, 你 将 不 用 直 接 调 用 该 类 的 函 数,MFC Wizard 将 自 动为 程 序 员 建 立 连 接。</td></tr></table><table width=100% ><tr><td class=a14>
 </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b>4. 两 种 方 法 的 比 较</b></td>
    </tr></table><table width=100% ><tr><td class=a14>
综 上 所 述, 使 用 这 两 种 方 法 在Visual C++ 中 都 可 以 很 方 便 地 开 发 出 基 于ORACLE 数 据 库 的 应 用 程序, 同 时, 这 两 种 方 法 又 各 有 其 优 缺 点。ODBC 由 于 有MFC 强 大 的 类 库 支 持 而 使 得 编 程 实 现 非 常 方 便, 同 时 可 移植 性 也 很 强, 在 异 构的 数 据 库 之 间 移 植 也 只 需 更 改 很少 的 一 部 分 程 序, 但 是, 由ODBC 的 实 现 机 制 我 们 可 以 看到, 与PRO*C 相 比, 应 用 程 序 需 要 经 过ODBC 驱 动 程 序 管 理 器和ODBC 驱 动 程 序 两 层 才 能 和 数 据 库 通 信 接 口 建 立 联 系,而PRO*C 是 直 接 与 通 信 接 口 联 系, 因 此 建 立 在ODBC 上 应 用程 序 的 执 行 效 率 会 相 对 低 一 些。PRO*C 具 有 执 行 效 率 高,支 持 嵌 入 式PL/SQL 块 等ORACLE 自 身 特有 的 优 点, 但 正 因 为 有了 这 些 优 点, 使 得 用PRO*C 开 发 出 的 应 用 程 序 无 法 向 异构 数 据 库 平 台 移 植。</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr>
</table><br>
<style>.a1{font-size:1}</style>
<table width=100% ><tr><td align=right>(网页编辑:<a href='mailto:liu_yang@ccw.com.cn'>风之翼</a>)</td></tr></table>
</td><td class=a1 bgcolor=#f46240>&nbsp;</td>
<td valign=top width=138 align=right><table width=98% ><tr><td>
<form action='/app/gsearch1.asp' name=pdn><table width=100% ><tr><td>应用与方案
频道全文检索</td></tr>
<tr><td><input type="text" name="textfile" size=15 value=频道内检索 onfocus="this.value=''">
	<input border=0 src="../../../../../images/jian.gif" name="I1" type="image" align=absmiddle>
</td></tr>
</table>
</form>
<form name=srch action="/search/which.asp" method=post onsubmit="JavaScript:return chk()">
<table width=100% >
  <tr><td><select size="1" name="func">
  <option selected value="2">主题检索</option>
  <option value="1">周报全文检索</option>
  <option value="3">模糊词检索</option>
</select></td></tr>
  <tr><td><input type="text" name="SrchStr" size=15 value="输入待检索的词"
  onfocus="this.value=''">
  <input src="../../../../../images/jian.gif" name="I1" type="image" align="absMiddle" border=0>
  </td></tr>
</table>
<script language="JavaScript">
function chk()
{if (!document.srch.SrchStr.value){
alert("请输入需检索的词!");	
document.srch.SrchStr.focus();
return false;
}
else{if (document.srch.SrchStr.value.length>30){
alert("检索的词请不要超过30个字符!");
document.srch.SrchStr.focus();
return false;
}
}
}
</script></form>
<table width=100% ><tr><td class=f colspan=2><b>相关文章</b></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_10.asp.html'>在Access DB中存储&quot;画笔&quot;图象</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_9.asp.html'>在动态集中使用虚拟CListView</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_8.asp.html'>在无绑定模式下使用DBGrid</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_7.asp.html'>利用VC++获取异构型数据库库结构信息</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_6.asp.html'>在Visual C++中用ADO进行数据库编程</a></td></tr>
</table>
</td></tr></table></td></tr></table><br>
<table align=center width=680><tr><td align=right>
<form name=mail method=post action='/pub/subMail.asp' onsubmit='JavaScript: return chkField(this)'>
<INPUT type='hidden' name='rec' value='24230'>
您的姓名:<INPUT type="text" name=myName size=10>&nbsp;
您朋友的E-mail:<INPUT type="text" name=friendMail size=10>&nbsp;
<INPUT type="submit" value="推荐给好友">
</form>
</td></tr>
<tr><td align=right>
<b>[<a href="javascript:window.close()">关闭窗口</a>]</b>
</td></tr>
</table>
<script language="javascript">
function chkField(fmObj)
{if (!fmObj.friendMail.value){
	alert("请输入您朋友的E-mail!");
	fmObj.friendMail.focus();
	return false;
}
	return true;
}
</script>
<table align=center width=680>
<tr><td><hr size=1 width=660 color=#f46240></td></tr>
</table><br>
<p align=center>Copyright(C) ccw.com.cn,All rights reserved</p>
<p align=center><b>中国计算机世界出版服务公司版权所有</b></p>

⌨️ 快捷键说明

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