Microsoft Data Access Components(MDAC) 结构以及一些连接SQL数据库的架构基础

Microsoft Data Access Components (MDAC) 包含访问数据的核心组件, 诸如Microsoft SQL Server™ OLE DB provider和ODBC driver.

下图演示了MDAC的结构.

clip_image001

Provider

==============

注意看, 这幅图中, 所有Application仅通过一个箭头就可以连到的地方就是Provider们了.

ADO          –   msado15.dll

OLE DB     –   oledb32.dll

ODBC       –   odbc32.dll

.Net Framework Data provider for OLE DB          –   System.Data.Oledb

.NET Framework Data Provider for ODBC           –   System.Data.Odbc

.NET Framework Data Provider for SQL Server   -   System.Data.SqlClient

.NET Framework Data Provider for Oracle           -   System.Data.OracleClient

注意, 上图中除了System.Data.Sni外, 托管组件最终都要调用到相应的非托管组件中.

比如SharePoint在连接数据库的时候, 会使用的provider之中, 有一种叫做microsoft ole db provider for sql server, 还有一种是sql native client. 经过证明, UDL文件中的microsoft ole db provider for sql server连接SQL的方式与w3wp.exe连接SQL的方式是一样的. 所以, 可以使用UDL文件来测试并判断连接问题出现在SharePoint一边还是出现在SQL一边.

Protocol

============

连接数据库的时候有以下几种协议:

  • TCP/IP - Dbnetlib.dll
  • Named Pipe - Dbnetlib.dll routes to Dbnmpntw.dll
  • Shared Memory – Server Shared Memory Net-Library

这里的protocol在上图中对应的是地步的Dbnetlib.dll和Dbnmpntw.dll的部分.

参考资料

================

Data Access Tracing in SQL Server 2008

http://msdn.microsoft.com/en-us/library/cc765421%28v=sql.100%29.aspx 

Client and Server Net-Libraries

http://msdn.microsoft.com/en-us/library/aa174500%28v=sql.80%29.aspx

原文地址:https://www.cnblogs.com/awpatp/p/1911401.html