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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?