回 帖 发 新 帖 刷新版面

主题:MS ACCESS和MS SQL连接数据的方法都有很多种,他们之间有什么不同啊?

1.Access数据库的DSN-less连接方法: 

set adocon=Server.Createobject("adodb.connection") 

adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _ 

Server.MapPath("数据库所在路径") 

2.Access OLE DB连接方法: 

set adocon=Server.Createobject("adodb.connection") 

adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _ 

"Data Source=" & Server.MapPath("数据库所在路径") 

3.SQL server连接方法: 

set adocon=server.createobject("adodb.recordset") 

adocon.Open"Driver={SQL Server};Server=(Local);UID=***;PWD=***;"& _ 

"database=数据库名;" 

4.SQL server OLE DB连接方法: 

set adocon=Server.Createobject("adodb.connection") 

adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"& _ 

"user ID=***;Password=***;"& _ 

"inital Catalog=数据库名" 
我写的这几种,肯定没有写全,但是我还是想知道他们之间有什么不同呢?性能?安全?速度?

回复列表 (共3个回复)

沙发

这说到底是ado技术中odbc 和oledb的区别,我也说不太清楚,希望下面这段话可以有个抛砖引玉的作用:
史前
    那时候每个数据库供应商(其实也没几个)
    都有自己的数据库操作API,
    每个应用程序只能使用一个固定的数据库
    想换数据库?没门!你要全部重新写
后来
    X/OPEN和ISO(好像还有IBM)说
        KAO,这么乱,程序员怎么活啊
    于是提出了CLI(Call-Level Interface)
    每个数据库的CLI(驱动程序)基本上相同,
    程序员总算好过点了,可是要换数据库,
    你写的程序需要重新编译(或许还要安装)
再后来
    于是ODBC来了,它通过动态装载各个数据库的CLI
    把函数调用转换成每个数据库的CLI调用
    数据库应用程序总算和数据库供应商每什么关系了
再后来
    MS提出了OLE,MS还有了自己的数据库
    (Access/SQL Server)
    MS是老大,这个问题上当然要有自己的看法
    要是还只是提供ODBC,那多没面子
    所以提出了 OleDb,它通过COM接口调用
    OleDb也需要每个数据库提供一个CLI
    (不过有了新名词,叫作Provider)
    MS 给 Access和SqlServer分别写了一个Provider
    不过为了照顾使用ODBC的,也提供了一个ODBC的Provider
    这样那些只提供ODBC的数据库也可以通过OleDb访问
    不过这样效率就稍微低了(因为要经过两层么)
    所以现在有些数据库会提供自己的Provider
再后来
    MS说OleDb的接口太复杂了
    程序员也就调调QUERY
    没必要搞这么复杂吧
    于是提出了ADO,ADO 通过在OleDb上面封装
    简化了使用方法,程序员在操作数据库上总算是解放了
新世纪终于到来了
    MS也发明了.NET,为了适应新世纪新潮流
    也提出了 ADO.NET,使这一技术更深化

说到底
ODBC是最底层的Microsoft数据访问层
OLEDB是在此基础上开发的,应用于OLE所有对象的,虽然它用起来方便点,但是需要经过中间转换,最终还是要通过odbc层,所以效率会低一些

板凳

这么说OLEDB效率还不行啊?

3 楼

具体有什么不同

我来回复

您尚未登录,请登录后再回复。点此登录或注册