oledb和odbc之间有什么区别啊?

时间:2022-01-02 04:31:19
http://bbs.mscommunity.com/Forums/ShowThread.aspx?PostID=22427

史前

    那时候每个数据库供应商(其实也没几个)

    都有自己的数据库操作API

    每个应用程序只能使用一个固定的数据库

    想换数据库?没门!你要全部重新写

后来

    X/OPENISO(好像还有IBM)

        KAO,这么乱,程序员怎么活啊

    于是提出了CLICall-Level Interface

    每个数据库的CLI(驱动程序)基本上相同,

    程序员总算好过点了,可是要换数据库,

    你写的程序需要重新编译(或许还要安装)

再后来

    于是ODBC来了,它通过动态装载各个数据库的CLI

    把函数调用转换成每个数据库的CLI调用

    数据库应用程序总算和数据库供应商每什么关系了

再后来

    MS提出了OLEMS还有了自己的数据库

    (Access/SQL Server)

    MS是老大,这个问题上当然要有自己的看法

    要是还只是提供ODBC,那多没面子

    所以提出了 OleDb,它通过COM接口调用

    OleDb也需要每个数据库提供一个CLI

    (不过有了新名词,叫作Provider)

    MS AccessSqlServer分别写了一个Provider

    不过为了照顾使用ODBC的,也提供了一个ODBCProvider

    这样那些只提供ODBC的数据库也可以通过OleDb访问

    不过这样效率就稍微低了(因为要经过两层么)

    所以现在有些数据库会提供自己的Provider

再后来

    MSOleDb的接口太复杂了

    程序员也就调调QUERY

    没必要搞这么复杂吧

    于是提出了ADO,ADO 通过在OleDb上面封装

    简化了使用方法,程序员在操作数据库上总算是解放了

新世纪终于到来了

    MS也发明了.NET,为了适应新世纪新潮流

    也提出了 ADO.NET,

    这部分的内容我不大清除,请哪位大人继续 :)

    不过我感觉是在原ADO上面继续封装吧

 

 

 

 

                                                                                    整理人:Vince Yuan