一开始接触数据库,对于OLEDB和ODBC的关系比较模糊,理解不是很深刻。下面我们先来看看他们的关系。

打开odbc数据源没有mysql_数据库

    ODBC(开放数据库互连):是Microsoft引进的一种早期数据库接口技术。它实际上是ADO的前身。早期的数据库连接是非常困难的. 每个数据库的格式都不一样,开发者得对他们所开发的每种数据库的底层API有深刻的了解. 因此,能处理各种各样数据库的通用的API就应运而生了. 也就是现在的ODBC(Open DatabaseConnectivity), ODBC是人们在创建通用API的早期产物. 有许多种数据库遵从了这种标准,被称为ODBC兼容的数据库. 

    OLEDB(对象链接和嵌入数据库)位于ODBC层与应用程序之间. ADO是位于OLEDB之上的"应用程序". 你的ADO调用先被送到OLEDB,然后再交由ODBC处理. 你可以直接连接到OLEDB层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升. 

打开odbc数据源没有mysql_security_02

    另外,图上画的都是以SQL server身份验证的方式举例的。而数据库一般都支持两种,如Windows身份验证,或SQL身份验证。即SQL身份验证需要指定用户名和密码,而Windows身份验证就不用。

用OLEDB方式来举例:

  Sql身份验证模式:

ConnectString =“Provider=SQLOEDB;Data source=server_name;
              Initial catalog=databasename;UID=username;PWD=password;”

  Windows身份验证模式:

ConnectString=“Provider=SQLOLEDB;Data Source=server_name;DataBase=databasename;
Persist Security Info =true”

    SSPI是SecuritySupport Provider Interface(Microsoft安全支持提供器接口)。SSPI是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。Integrated Security 可以设置为: True, false, yes,no ,还可以设置为:sspi ,相当于 True,建议用这个代替 True。

Persist Security Info:坚持安全信息

    Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",True表示保存,False表示不保存.ADO缺省为False.

设置Integrated Security为 True 的时候,采用windows身份验证模式。只有设置为 False 或省略该项的时候,采用 UID, PWD 来连接。