Microsoft Data Access Components(MDAC) 结构以及一些连接SQL数据库的架构基础
Microsoft Data Access Components (MDAC) 包含访问数据的核心组件, 诸如Microsoft SQL Server™ OLE DB provider和ODBC driver.
下图演示了MDAC的结构.
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