我在连接数据库时用ado或BDE,odbc方式,可一直不明白他们与oracle和sql server等各种数据库的驱动程序有什么关系?
  ado,BDE,odbc是不是叫数据库引擎,那么他们与数据库的驱动程序又有什么区别呢?
请各位赐教,谢谢!

解决方案 »

  1.   

    个人意见:
    Ado和odbc是数据库引擎,这两种连接你不仅在Delphi中可以见到,别的开发语言中也可以见到,
    至于同BDE并列的ADO我倒认为那两个叫做两种Delphi控件集的简称更好一些,只是大家习惯了才都叫ADO,其实跟odbc并列和同BDE并列的ADO很不一样,
    另外,就是随着数据库和开发语言的发展,似乎大家普遍认为,ADO正在慢慢淘汰odbc
      

  2.   

    ADO(ActiveX数据对象):它克服了早期技术的诸多限制,依赖于Microsoft新的底层访问方法OLE-DB(对象链接和嵌入数据库)。访问速度相当快。但有一个问题是,它不支持远程通信。这是Microsoft提出RDO(远程数据对象)的原因之一。
        ODBC素以最慢的数据访问方法而著称,但是很可惜,当ADO或DAO都不支持某个数据库管理器而ODBC支持这个数据库管理器时,在这种特定的情形下,你仍然需要使用ODBC。在大多数情况下,这意味着要从数据库厂商那里获得所需的驱动程序,本质上讲,你总是要使用ODBC来访问Microsoft产品之外的其它DBMS产品所创建的数据库,这些数据库并不具备OLE-DB功能。
      

  3.   

    to 47522341(睡到8:30) ( ) 信誉:132 
    照你的说法ado,odbc,RDO,还有BDE都应该是数据库引擎;
    那为什么delphi必须使用BDE administrator连接odbc再连接数据库呢?
    而使用ado连接时好象无须使用BDE administrator就可以连上数据库?
      

  4.   

    BDE administrator根本就是个配置工具,delphi是通过odbc dsn连接数据库的,怎么说呢,恰巧BDE administrator也可以配置odbc dsn,不用BDE administrator用windows自带的odbc数据源一样可以配置,你在BDE administrator里配置的odbc数据源打开windows的odbc管理器一样能看到。
      

  5.   

    to bluekitty(一只Colorful猪) ( ) 信誉:99    
    BDE与BDE administrator是不是一回事.
      

  6.   

    BDE属于vcl,是个data aware组件包,BDE administrator是个工具,可以管理BDE访问数据库所需的数据库别名,也可以配置odbc dsn,应该算是一个应用软件。就如同sqlserver和sqlserver management console的关系。
      

  7.   

    to  bluekitty(软件黑领)
    如果不用BDE administrator 可以连接上odbc的数据源吗?
    是不是BDE 和ado,odbc根本就不是一回事;
    BDE只是delphi访问数据库的一个工具,而ado,odbc是一种连接数据库的协议(或是方法).
      

  8.   

    如果不用BDE administrator 可以连接上odbc的数据源吗?
    ----------------------------------------------------
    可以地,你打开控制面板->管理工具->数据源(ODBC)bde、ado、odbc其实算是一回事,他们都提供了数据访问接口,使程序员彻底脱离dbms,否则你使用access库就要处理access驱动,使用sqlserver就要处理sqlserver驱动,使用oracle就要处理oracle驱动,非常麻烦。但bde administrator和bde不是一回事,它只是个管理工具。具体bde、ado、odbc到底叫什么,叫工具或者方法或者协议都无所谓,就是个名字,不过我觉得叫接口比较顺耳。
      

  9.   

    to  bluekitty(软件黑领) ( ) 信誉:99
    你打开控制面板->管理工具->数据源(ODBC)
    _____________________________________ 
    这只能在"用户dsn"中建一个数源,最终还是要用BDE administrator来设置啊!
    如果不用Bde administrator应该怎样做呢?谢谢!
      

  10.   

    我个人认为bde是一个和jdbc:ODBC桥接器一样的一个东西.对于建立odbc数据源的话也不一定要在控制面板里建立,它其实就是写一个注册表,通过对注册表的操作同样可以建立一个odbc数据源
      

  11.   

    这只能在"用户dsn"中建一个数源,最终还是要用BDE administrator来设置啊!
    如果不用Bde administrator应该怎样做呢?谢谢!
    ------------------------------------------------------------------------
    哎呀,这些你自己试验一下不就很清楚了么。给你举个例子(注意,从头到尾都不要打开BDE administrator),比如你在用户dsn中设置了一个数据源叫mysql,配置好并测试成功。
    1、使用oledb提供者时(使用ado),连接串这样写(oledb for odbc):Provider=MSDASQL.1;Persist Security Info=False;Data Source=MySql。
    2、使用bde时,在TTable组件的大database属性的下拉列表中直接选择mysql。
    odbc因该算是一个提供者,而ado、bde则是使用者(不一定是使用odbc,ado也可以使用oledb)。
      

  12.   

    真是感谢各位的帮助(特别是 bluekitty(软件黑领))!谢谢大家!
    但我还是有一个小问题:
    我的机器上装有oracle的客户端(Oracle ODBC Driver)版本号为:8.01.06.00,我是在数据源(ODBC)的"驱动程序"中看到的.但在BDE administrator的"configuration"-"Drivers"-"ODBC"中看到相同的名字"Oracle ODBC Driver"但是它的Version却是5.0的.我不明白的是:BDE administrator中的驱动程序是不是由delphi自带的,而本地机器上的"数据源(ODBC)"中看到的驱动程序是数据库产商提供的?
    谢谢!
      

  13.   

    上面这个问题我看了一下帮助,帮助是这么解释的:
    internal borland version number of the SQL Links driver.do not modify.
    可见,这是个borland定义的内部版本号,和实际的oracle的版本号无关,如果你装的是oracle 8i,那么在odbc管理器中看到的8.01.06.00就是对的。