目录

数据库访问接口发展历史

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;

数据库访问接口(ODBC,OLEDB,ADO)的更多相关文章

  1. 数据库访问接口(ODBC、OLE DB、ADO)

    最近在学C#的数据库编程,对于数据库接口技术这块的知识一直比较模糊,网上查了不少资料,看了几天还是朦朦胧胧的,只能做些笔记再研究了. 我们都知道,“数据库”是指一组相关信息的集合,最早的计算机应用之一 ...

  2. 数据库访问接口之ODBC

    ODBC API 实现数据库操作的手段是句柄.在ODBC中,使用不同的句柄(HANDLE)来标志环境(environment).连接(Connection).语句(statement).描述符(des ...

  3. 【转载】ODBC, OLEDB, ADO, ADO.Net的演化简史

    原文:ODBC, OLEDB, ADO, ADO.Net的演化简史 1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->ODBC->OLEDB->ADO->ADO.N ...

  4. ODBC, OLEDB, ADO, ADO.Net的演化简史

    ODBC, OLEDB, ADO, ADO.Net的演化简史 Copy&Paste了一下午,终于一蹴而就此文,嘿嘿... 1.演变历史 它们是按照这个时间先后的顺序逐步出现的,史前->O ...

  5. ODBC, OLEDB, ADO, ADO.NET

    在SSIS中,选择Connction Manager时,有很多的类型.其中会发现如下4个连接类型ODBC, OLEDB, ADO, ADO.NET.这4个东东到底是什么,他们有什么关联,什么区别,如何 ...

  6. c++ 11 是如何简化你的数据库访问接口的

    之前写过一篇文章专门分析了 c++ 模板编译过程中报的一个错误:<fatal error C1045: 编译器限制 : 链接规范嵌套太深 >,其中涉及到了 qtl -- 一个使用 c++ ...

  7. 数据库访问技术 odbc dao rdo uda jet oledb

    一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...

  8. 第20章 HOOK和数据库访问

    转自: https://blog.csdn.net/u014162133/article/details/46573873 通过安装Hook过程,可以用来屏蔽消息队列中某些消息 The SetWind ...

  9. SQL Server 提供的各种数据访问接口

    在创建SQL Server的链接服务器时,可以看到有如下几种访问接口,其中我们常用的只有1.3.4.6.其中4是安装Oracle客户端才会出现的接口,3.6是由于我电脑上装了2008R2和2012两个 ...

随机推荐

  1. 性能调优 -- Java编程中的性能优化

    String作为我们使用最频繁的一种对象类型,其性能问题是最容易被忽略的.作为Java中重要的数据类型,是内存中占据空间比较大的一个对象.如何高效地使用字符串,可以帮助我们提升系统的整体性能. 现在, ...

  2. axios解决跨域问题(vue-cli3.0)

    一.什么是跨域 1.跨域 指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 2.同源策略 是指协议,域名,端口都要相同,其中有一个不同都 ...

  3. Dynamics 365客户端编程示例:两个选项集字段的联动

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  4. [转]UiPath Invoke Code

    本文转自:https://dotnetbasic.com/2019/08/uipath-invoke-code.html We will learn step by step tutorial for ...

  5. 数据库 tcp协程实现并发 回调函数

    数据库 tcp协程实现并发 回顾 一.回顾 进程池,线程池,回调函数 # from gevent import monkey;monkey.patch_all() #补丁 from gevent im ...

  6. YourSQLDba的共享路径备份遭遇重启问题

    如果YourSQLDba设置过共享路径备份(具体参考博客YourSQLDba设置共享路径备份),有时候服务器重启后,备份就会出错,具体错误信息类似如下所示: Date        2019/9/25 ...

  7. idea开发时springboot项目时的自动编译和热部署

    前提:最好将idea的启动器设置一下 操作:1.file > Build,Execution,Deployment > Compiler 勾选 Build project automati ...

  8. Windows性能监控监视器(perfmon使用)

    一.在命令窗口或运行中执行perfmon.exe,打开性能监视器 二.在用户定义中,即可新建--数据收集器--性能计数器,步骤如下: 三.添加监控Windows服务器的资源类型,例如:内存(Avail ...

  9. Softmax用于手写数字识别(Tensorflow实现)-个人理解

    softmax函数的作用   对于分类方面,softmax函数的作用是从样本值计算得到该样本属于各个类别的概率大小.例如手写数字识别,softmax模型从给定的手写体图片像素值得出这张图片为数字0~9 ...

  10. OpenGL 之 Compute Shader(通用计算并行加速)

    平常我们使用的Shader有顶点着色器.几何着色器.片段着色器,这几个都是为光栅化图形渲染服务的,OpenGL 4.3之后新出了一个Compute Shader,用于通用计算并行加速,现在对其进行介绍 ...