zoukankan      html  css  js  c++  java
  • 数据库访问接口(ODBC,OLEDB,ADO)

    目录

    数据库访问接口发展历史

    ODBC历史

    ODBC(Open Database Connectivity,开放数据库互连)。要了解ODBC是什么,先了解一下数据库连接的相关知识。在最开始连接数据库时,由于数据库种类繁多,各种数据库连接有不同的需求,这个时期,数据库连接主要依靠各种API函数来进行连接。在这种背景下,微软于1992年发表了ODBC, ODBC就是将这些API函数封装起来形成统一的接口。当SQL语句进入接口后,驱动器管理程序将它们送入对应的驱动器(driver),由驱动器将SQL语句送入各种不同的数据库。

    OLE DB历史

    OLE DB(Object Linking and Embedding, Database,对象链接嵌入数据库)是微软为以统一方式访问不同类型的数据存储设计的一种应用程序接口。OLE DB 是建立在 ODBC 功能之上的一个开放规范。ODBC 是为访问关系型数据库而专门开发的,OLE DB 则用于访问关系型和非关系型信息源。OLE DB可以通过ODBC连接到数据库,也可以直接连接到数据库,并且直接连接的访问速度更快。可以知道,只要支持ODBC的数据源是一定能够支持OLEDB的,但是反过来则不一定。

    ADO历史

    ADO(ActiveX Data Objects,ActiveX 数据对象)在1996年8月与OLE DB一起被发布,是在OLE DB上面创建的一个新的统一的数据访问的高层对象模型。ADO推出后顺利的取代了微软早期的数据访问对象层(包括RDO(Remote Data Objects)和DAO(Data Access Objects))。ADO将OLE DB的对象模型进一步简化,由数据库厂商开发满足OLE DB接口的数据提供者(data provider),而ADO本身则是与数据源无关(data source independent)的对象结构,这使得ADO通用性极好。

    ODBC、OLEDB和ADO之间的关系

    VB脚本下的数据库接口代码示例

    OLEDB连接

    标准安全模式(Standard Security)

    dim conn, sCon
    set conn=server.CreateObject("ADODB.Connection")
    sCon="Provider=SQLOLEDB;Data Source=(local); Initial Catalog =dbname;User ID=sa;Password=123"
    conn.open(sCon)

    信任连接(Trusted connection)

    dim conn, sCon
    set conn=server.CreateObject("ADODB.Connection")
    sCon="Provider=SQLOLEDB; Integrated Security=SSPI; Persist Security Info=False;Data Source=(local); Initial Catalog =dbname"
    conn.open(sCon)

    ODBC连接

    通过系统数据源(System DSN)连接

    先注册数据源:DSN。打开管理工具 -> 数据源(ODBC) -> 打开系统DSN选项卡 -> 单击添加按钮 -> 从列表中选择SQL Server,单击完成 -> 在名称中输入数据库名称,在你想连接的SQL Server服务器中输入(local)-> 按向导提示完成。

    dim conn, sCon
    set conn=server.CreateObject("ADODB.Connection")
    sCon="DSN=注册名;Uid=sa;Pwd=123"
    conn.open(sCon)

    通过ODBC驱动程序连接

    dim conn, sCon
    set conn=server.CreateObject("ADODB.Connection")
    sCon="Driver={SQL Server};Server=(local); Uid=sa;Pwd=123;Database=dbname"
    conn.open(sCon)

    在SQL Server中通过链接服务器查询OLE DB数据源

    创建链接服务器

    配置链接服务器使SQL Server数据库引擎能够访问SQL Server实例之外的OLE DB数据源。

    在SQL Server Management Studio中,打开对象资源管理器,展开“服务器对象”,右键单击“链接服务器”,然后单击“新建链接服务器”。

    在“常规”页中,“链接服务器”一栏中为链接服务器命名,并填入其他信息。 

    对链接数据库查询

    在指定的链接服务器上执行传递查询。语法如下 :

    OPENQUERY ( linked_server ,'query' )  

    参数:

    • linked_server:表示链接服务器名称的标识符。
    • ' query ':在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。

    OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名

    SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle'''); 

    在SQL Server中直接查询OLE DB数据源

    通过OPENDATASOURCE()函数直接查询OLE DB数据源,语法如下:

    OPENDATASOURCE ( 'provider_name', 'init_string' )
    

    示例如下:

    SELECT GroupName, Name, DepartmentID  
    FROM OPENDATASOURCE('MSOLEDBSQL', 'Server=Seattle1;Database=AdventureWorks2016;TrustServerCertificate=Yes;Trusted_Connection=Yes;').HumanResources.Department  
    ORDER BY GroupName, Name;
    
  • 相关阅读:
    2019-2020-2 网络对抗技术 20175213吕正宏 Exp4 恶意代码分析
    2019-2020-2 网络对抗技术 20175213吕正宏 Exp3 免杀原理与实践
    2019-2020-2 网络对抗技术 20175213吕正宏 Exp2 后门原理与实践
    2019-2020-2 网络对抗技术 20175213吕正宏 Exp1 PC平台逆向破解
    ucosii-2(选做)
    2019-2020-2 网络对抗技术 20175224 Exp9 Web安全基础
    2019-2020-2 网络对抗技术 20175224 Exp8 Web基础
    2019-2020-2 网络对抗技术 20175224 Exp7 网络欺诈防范
    2019-2020-2 网络对抗技术 20175224 Exp6 MSF基础应用
    2019-2020-2 网络对抗技术 20175224 Exp5 信息搜集与漏洞扫描
  • 原文地址:https://www.cnblogs.com/yada/p/11726075.html
Copyright © 2011-2022 走看看