📄 0505001.htm
字号:
<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">vckbase</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">
运用Oracle Object for OLE开发数据库应用
</td>
</tr>
<tr>
<td width="100%" height="17" class="info" align="center" colspan="2">
<FONT class=eng>crazy_wind</FONT> <A
href="mailto:long_jj@263.net"><FONT
class=engul>long_jj@263.net</FONT></A>
</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">
<DIV align=left>
<P>Oracle以OLE的方式提供了一套对象(类库)访问数据库,他们简化了编写与Oracle数据库通信的程序,
这套对象由三种原理的组件组成:The Oracle Server,The Oracle DataContral
和Oracle Object OLE C++ Class Library。此处讨论第三种:Oracle Object For
OLE C++ Class Library。</P>
<P>1.实现原理</P>
<P>这些类库是一个提供编程接口访问Oracle对象服务器的C++类库,它是用OLE的方式实现的。它支持32位平台上的,VC++2.x及以上版本。Oracle提供的是一个在程(In
process)服务器,也就是服务器将与应用程序在同一个地址空间内,
它以DLL方式提供(图1)。应用程序在访问数据库之前必须先加载Oracle对象服务器(OStatup方法),然后与Oracle对象服务器通信,Oracle对象服务器其实是一些组件,它通过Oracle的OCI访问数据库。这样你就不必关心到底怎么与服务器通信,只管操纵类库就行了。所以,虽然它是用OLE实现的,但您既不需要OLE开发工具,也不要求您有OLE开发的知识。但必须有C++开发知识及开发环境,而且应该有SQL的知识。</P>
<P>说明:正如Microsoft以C打头表示类,Borland以T打头表示类一样,Oracle提供的C++类库的类以O打头。</P>
<P align=center><IMG align=absMiddle height=264
src="../../images/oracle_oledb2.gif" width=234></P>
<P align=center>图1</P>
<P align=center><IMG height=395
src="../../images/oracle_oledb1.gif" width=380></P>
<P align=center>图2</P>
<P align=center><IMG height=404
src="../../images/oracle_ole_db3.gif" width=394></P>
<P align=center>图3</P>
<P align=center> </P>
<P>2.特点</P>
<P>它的使用方法我觉得与使用微软封装后的ODBC基本一样,所以它的使用方法我想你也能很快熟悉。</P>
<P>在加入对象的类中,
类库提供一种允许控件能象文本和列表框一样直接连接到一个数据库的列上的类(OBinder),这种类支持运行是绑定,
如果你有使用MFC的经验,那么,您将很快的学会这套类库的使用。Oracle
提供的这套类库能让开发者容易,快速地以最小C++代码量访问Oracle 数据库。</P></DIV>
<DIV align=left>
<P>3.类库</P>
<P>类库支持最简单的C数据类型: int
,long,double,char*。这层是一层级别比较低的接口,虽然你会发现支持你自己的数据类型并不难,但它不直接提供支持更高级的数据类型。
它的操作的级别非常高,你可以通过构造一个ODatabase对象来连接数据库(ODatabase odb("database
name","username","user
password"),你可以通过构造一个ODynaset对象来获得某表全部的数据(ODynaset
odyn(odb,"select * from ...."),你可以通过操纵查询结果来向前或向后翻动。 </P>
<P>运用Oracle Objects for OLE C++ Class Library开发的步骤: </P></DIV>
<UL>
<LI>
<DIV align=left>通过调用OStatup方法初始化类库。 </DIV>
<LI>
<DIV align=left>连接数据库。</DIV>
<LI>
<DIV align=left>操纵数据库 </DIV>
<LI>
<DIV align=left>断开数据库(类库自动为你自动执行) </DIV>
<LI>
<DIV align=left>通过调用OShutdown方法卸载类库。 </DIV></LI></UL>
<P>它的详细使用方法,及每个类库的使用,请阅读Oracle提供的文档。</P>
<P>4.总结</P>
<P>运用Oracle Object For OLE C++ Class
Library开发数据库应用非常方便,但要做一套系统,形成一套体系这是远远不够的。想作一套能满足需求、持续发展的应用系统,需要作的工作很多,需要不断积累。现在有了C++,Java又有了COM/DCOM/CORBA我们这些今天的程序员真是太幸运了。</P>
<P>5.我开发的例子:<a href="../../code/oracle_ole_dev.zip">下载156K</a></P>
<P>开发环境:VC++6.0+MFC</P>
<P>数据库:Oracle 8.0</P>
<P>请将oraclm.dll拷贝到运行文件的目录中!</P>
<P>要运行例子要先装Oracle
8.0,如果有什么问题,请看你机器上的Oracle安装目录下的mshelp/Oraclec.hlp。</P>
</td>
</tr>
<tr>
<td width="100%" height="12" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="6" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="8" class="font" colspan="2">
</td>
</tr>
<tr>
<td width="100%" height="17" class="font" colspan="2"></td>
</tr>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -