📄 206001.htm
字号:
<html><body><span id=Layer1><p><font size=2 color=#3c3c3c face=arial>大部份的应用程式都会和某些资料一起运作。如果这样就足够的话,这些资料通常是储存在资料库管理系统(DBMS),而应用程式便使用某类应用程式程式化介面来存取它们。一个商业的DBMS通常提供自己的APIs,但Microsoft也同样定义了许多标准的介面,以常用的方法存取许多资料来源。</span><span id=Layer2></font></p><p><font size=2 color=#3c3c3c face=arial>存取储存的资料是大部份应用程式的一部份</span><span id=Layer3></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>存取储存的资料是大部份应用程式的一部份</span><span id=Layer4></font></p><hr><p><font size=2 color=#3c3c3c face=arial>定义一个能用来存取许多资料来源的单一介面不是个简单的问题,而Microsoft对这个问题的解决方案是经过许多沙盘推演的。今天,Microsoft Windows 2000平台上的应用程式可以使用叁种主要的资料库存取介面,统称为Microsoft Data Access Components (MDAC)。这些介面包含:</span><span id=Layer5></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> Open Database Connectivity</span><span id=Layer6> </b></font>(</span><span id=Layer7><font size=2 face=arial color=#3e80d7><b> ODBC</span><span id=Layer8> </b></font>) 这叁者之间最古老的介面,Microsoft ODBC 定义一组C函数透过结构化查询语言(Structured Query Language,SQL) 查询,专门用来存取关联式资料库。</span><span id=Layer9></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> OLE Database</span><span id=Layer10> </b></font>(</span><span id=Layer11><font size=2 face=arial color=#3e80d7><b> OLE DB</span><span id=Layer12> </b></font>) 在1990年中期建立的,Microsoft OLE DB是一组COM类别与介面组成的。你可以使用SQL存取关联式资料库,而OLE DB同样也设计来存取更多一般的资料来源,包含不支援SQL的资料来源。</span><span id=Layer13></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> ActiveX Data Object</span><span id=Layer14> </b></font>(</span><span id=Layer15><font size=2 face=arial color=#3e80d7><b> s</span><span id=Layer16> </b></font>)(</span><span id=Layer17><font size=2 face=arial color=#3e80d7><b> ADO</span><span id=Layer18> </b></font>) 与 OLE DB一样,Microsoft ADO使用COM的技术建立的,它可以存取关联式资料库以及非关联式资料库。这两者最大的不同在於ADO比OLE DB要简单的多了。</span><span id=Layer19></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial>Microsoft已定义许多不同的资料存取介面</span><span id=Layer20></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>Microsoft已定义许多不同的资料存取介面</span><span id=Layer21></font></p><hr><p><font size=2 color=#3c3c3c face=arial>当将Microsoft将「OLE」标签加诸在使用COM的技术上时,「OLE Database」这个名称已是历史的遗迹。当将Microsoft将「ActiveX」标签加诸在使用COM的技术上时,「ActiveX Data Objects」这个名称也是历史的遗迹。很感谢Microsoft的行销专家们已停止将这些广泛使用的标签加在与COM相关的技术上了。</span><span id=Layer22></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注</b></font><p><font size=2 color=#3c3c3c face=arial>当将Microsoft将「OLE」标签加诸在使用COM的技术上时,「OLE Database」这个名称已是历史的遗迹。当将Microsoft将「ActiveX」标签加诸在使用COM的技术上时,「ActiveX Data Objects」这个名称也是历史的遗迹。很感谢Microsoft的行销专家们已停止将这些广泛使用的标签加在与COM相关的技术上了。</span><span id=Layer23></font></p><hr><p><font size=2 color=#3c3c3c face=arial>图 6-1显示这叁种资料存取介面之间的关系。如图所示,客户端可以使用任何一种技术直接存取一个资料来源(Data Source)。ADO是实作在OLE DB之上的,而OLE DB介面则可以实作在ODBC之上,也可以不用透过ODBC直接作资料存取。</span><span id=Layer24></font></p><br><center><a target=_new href=imagesh/6-1.gif><img border=0 src='imagesl/6-1.gif'></a></center></span><span id=Layer25><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b> 图 6-1</span><span id=Layer26> </b></font>一个应用程式可以使用ADO、OLE DB,或ODBC上述任何一种技术来存取资料。</span><span id=Layer27></td></table></font></center><a name=206001><font color=#3e70d7 face=arial size=5><b>开放资料库连结性(Open Database Connectivity)</span><span id=Layer28></b></font><p><font size=2 color=#3c3c3c face=arial>ODBC是以SQL呼叫等级(Call-Level)介面为基础的,它是由X/Open工业协会所定义,目前改名为Open Group。许多公司已建立资料库专属的ODBC驱动程式,而存取特定DBMS的软体却尚未提供标准的ODBC介面给客户端。ODBC曾经风光一时 Microsoft、Oracle、Sybase、IBM与许多的厂商已撰写许多DBMS的驱动程式。不管它是否已成为一种古老的技术,它仍是一个广被使用的技术。</span><span id=Layer29></font></p><p><font size=2 color=#3c3c3c face=arial>ODBC是个被广泛使用的介面</span><span id=Layer30></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>ODBC是个被广泛使用的介面</span><span id=Layer31></font></p><hr><p><font size=2 color=#3c3c3c face=arial>ODBC包含许多函数库。最重要的函数包括:</span><span id=Layer32></font></p><font size=2 color=#3c3c3c face=arial><ul><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLConnect</span><span id=Layer33> </b></font>使用特定的ODBC驱动程式建立一个到资料库的连线。</span><span id=Layer34></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLPrepare</span><span id=Layer35> </b></font>传递一个SQL叙述到一个DBMS,允许DBMS来编译这个叙述。</span><span id=Layer36></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLExecute</span><span id=Layer37> </b></font>告诉DBMS执行一个已编译过的SQL叙述。</span><span id=Layer38></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLExecDirect</span><span id=Layer39> </b></font>传递一个SQL叙述到一个DBMS,然後告诉它马上编译并执行。</span><span id=Layer40></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLFetch</span><span id=Layer41> </b></font>从一个已执行的SQL查询所回传的结果取出一笔或多笔横列。</span><span id=Layer42></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLGetData</span><span id=Layer43> </b></font>回传使用SQLFetch取回的横列中一个或多个直栏的值。</span><span id=Layer44></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLBindParameter</span><span id=Layer45> </b></font>允许在SQL查询的结果中,定义变数能直接复制。</span><span id=Layer46></li><br></font><font size=2 face=arial color=#3c3c3c><li><font size=2 face=arial color=#3e80d7><b> SQLDisconnect</span><span id=Layer47> </b></font>释放到DBMS的连线。</span><span id=Layer48></li><br></font></ul></font><p><font size=2 color=#3c3c3c face=arial>ODBC是一个C应用程式,可发行SQL查询。</span><span id=Layer49></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>ODBC是一个C应用程式,可发行SQL查询。</span><span id=Layer50></font></p><hr><p><font size=2 color=#3c3c3c face=arial>不过按今天的标准来看,有许多的原因让ODBC看起来更为古老。第一,因为它是一组C函数的集合,因此并不容易使用其它的程式语言来存取,如Microsoft Visual Basic。此外, ODBC定义成使用SQL来存取关联式资料库的介面。这带来许多资料存取上的问题,而且也无法面面俱到。为了让其它的语言,以及不使用SQL的方式来存取资料,还需要一些必要的东西。</span><span id=Layer51></font></p><p><font size=2 color=#3c3c3c face=arial>今天,ODBC已不足所需了</span><span id=Layer52></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>今天,ODBC已不足所需了</span><span id=Layer53></font></p><hr><p><font size=2 color=#3c3c3c face=arial>Microsoft定义了Remote Data Objects (RDO),这是早期的一个以COM为基础的介面,它是设计时具体描述如何让Visual Basic程式设计师能存取ODBC驱动程式。</span><span id=Layer54></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b> 附注</b></font><p><font size=2 color=#3c3c3c face=arial>Microsoft定义了Remote Data Objects (RDO),这是早期的一个以COM为基础的介面,它是设计时具体描述如何让Visual Basic程式设计师能存取ODBC驱动程式。</span>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -