搜索
首页数据库mysql教程MDAC(Introduce to Microsoft Data Access Components)

Microsoft Data Access Components (commonly abbreviated MDAC ; also known as Windows DAC ) is a framework of interrelated Microsoft technologies that allows programmers a uniform and comprehensive way of developing applications that can acc

MDAC(Introduce to Microsoft Data Access Components)

Microsoft Data Access Components (commonly abbreviated MDAC; also known as Windows DAC) is a framework of interrelated Microsoft technologies that allows programmers a uniform and comprehensive way of developing applications that can access almost any data store. Its components include: ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC). There have been several deprecated components as well, such as the Microsoft Jet Database Engine, MSDASQL (the OLE DB provider for ODBC), and Remote Data Services (RDS). Some components have also become obsolete, such as the former Data Access Objects API and Remote Data Objects.

The first version of MDAC was released in August 1996. At that time Microsoft stated MDAC was more a concept than a stand-alone program and had no widespread distribution method. Later Microsoft released upgrades to MDAC as web-based redistributable packages. Eventually, later versions were integrated with Microsoft Windows and Internet Explorer, and in MDAC 2.8 SP1 they ceased offering MDAC as a redistributable package.

Throughout its history MDAC has been the subject of several security flaws, which led to attacks such as an escalated privileges attack, although the vulnerabilities were generally fixed in later versions and fairly promptly. The current version is 2.8 service pack 1, but the product has had many different versions and many of its components have been deprecated and replaced by newer Microsoft technologies. MDAC is now known as Windows DAC in Windows Vista.

Contents

 [hide] 
  • 1 Architecture
    • 1.1 Microsoft SQL Server Network Library
    • 1.2 OLE DB
    • 1.3 Universal data link
    • 1.4 ODBC
    • 1.5 ADO
    • 1.6 ADO.NET
  • 2 Deprecated and obsolete components
    • 2.1 Microsoft Jet Database Engine and JRO
    • 2.2 MSDASQL and Oracle ODBC
    • 2.3 Remote Data Services (RDS)
    • 2.4 SQLXML
    • 2.5 Obsolete components
  • 3 History
    • 3.1 Version-checking
  • 4 References and notes
  • 5 External links

[edit] Architecture

The latest version of MDAC (2.8) consists of several interacting components, all of which are Windows specific except for ODBC (which is available on several platforms). MDAC architecture may be viewed as three layers: a programming interface layer, consisting of ADO and ADO.NET, a database access layer developed by database vendors such as Oracle and Microsoft (OLE DB, .NET managed providers and ODBC drivers), and the database itself. These component layers are all made available to applications through the MDAC API. The Microsoft SQL Server Network Library, a proprietary access method specific to Microsoft SQL Server, is also included in the MDAC. Developers of Windows applications are encouraged to use ADO or ADO.NET for data access, the benefit being that users of the application program are not constrained in their choice of database architecture except that it should be supported by MDAC. Naturally, developers still have the choice of writing applications which directly access OLE DB and ODBC.

[edit] Microsoft SQL Server Network Library

The Microsoft SQL Server Network Library (also known as Net-Lib) is used by the Microsoft SQL Server to read and write data using many different network protocols. Though Net-Lib is specific to the SQL Server, Microsoft includes it with MDAC. The SQL Server uses the Open Data Services (ODS) library to communicate with Net-Lib, which interfaces directly with the Windows NT operating system line's Win32 subsystem. The SQL Server Network Library is controlled through the use of a Client Network Utility, which is bundled with the SQL Server.

Each Net-Lib supported network protocol has a separate driver (not to be confused with a device driver), and has support for a session layer in its protocol stack. There are two general types of Net-Lib: the primary and the secondary. The primary Net-Lib consists of a Super Socket Net-Lib and the Shared Memory Net-Lib, while there are numerous secondary Net-Libs, including TCP/IP and named pipes network libraries (named pipes are a method of communicating with other processes via a system-persistent pipeline that is given an identity). The Microsoft OLE DB Provider for SQL Server (SQLOLEDB) communicates via primary Net-Libs.

The Super Socket Net-Lib deals with inter-computer communications and coordinates the secondary Net-Libs — though the TCP/IP secondary Net-Lib is an exception in that it calls on the Windows Socket 2 API directly. The Banyan VINES, AppleTalk, ServerNet, IPX/SPX, Giganet, and RPC Net-Libs were dropped from MDAC 2.5 onwards. The Network Library router had the job of managing all these protocols, however now only the named pipes secondary Net-Lib is managed by the router. The Super Socket Net-Lib also handles data encryption via the use of the Windows SSL API.

The Shared Memory Net-Lib, on the other hand, manages connections between multiple instances of SQL Server that exist on one computer. It uses a shared memory area to communicate between the processes. This is inherently secure; there is no need for data encryption between instances of SQL Server that exist on one computer as the operating system does not allow any other process access to the instances' area of shared memory.

Net-Lib is also able to support the impersonation of a logged in user's security context for protocols that support authenticated connections (called trusted connections). This allows Net-Lib to provide an integrated logon authentication mechanism via the use of Windows Authentication. Windows Authentication is not supported on Windows 98 or Windows Me.[1]

[edit] OLE DB

OLE DB (also called OLEDB or OLE-DB) allows MDAC applications access to different types of ([data]) stores in a uniform manner. Microsoft has used this technology to separate the application from the data store that it needs to access. This was done because different applications need access to different types and sources of data, and do not necessarily need to know how to access technology-specific functionality. The technology is conceptually divided into consumers and providers. The consumers are the applications that need access to the data, and the provider is the software component that exposes an OLE DB interface through the use of the Component Object Model (or COM).

OLE DB is the database access interface technology used by MDAC. OLE DB providers can be created to access such simple data stores as a text file or spreadsheet, through to such complex databases as Oracle and SQL Server. However, because different data store technology can have different capabilities, OLE DB providers may not implement every possible interface available. The capabilities that are available are implemented through the use of COM objects—an OLE DB provider will map the data store technology's functionality to a particular COM interface. Microsoft calls the availability of an interface to be "provider-specific" as it may not be applicable depending on the database technology involved. Additionally, however, providers may also augment the capabilities of a data store; these capabilities are known as services in Microsoft parlance.

The Microsoft OLE DB Provider for SQL Server (SQLOLEDB) is the OLE DB provider that Microsoft provides for the Microsoft SQL Server from version 6.5 upwards. According to Microsoft, SQLOLEDB will be "the primary focus of future MDAC feature enhancements [and] will be available on the 64-bit Windows operating system."[2]

[edit] Universal data link

Universal data link files (or '.udl files') provide a common user interface for specifying connection attributes. A user can use a Data Link Properties dialog box to save connection information in a .udl file as an alternative to directly specifying them by hand in a connection string. Consequently, these files provide a convenient level of indirection. Additionally, the dialog box specifies a number of alternate OLE DB data providers for a variety of target applications.[3]

[edit] ODBC

Open Database Connectivity (ODBC) is a native interface that is accessed through a programming language (usually C) that can make calls into a native library. In MDAC this interface is defined as a DLL. A separate module or driver is needed for each database that must be accessed. The functions in the ODBC API are implemented by these DBMS-specific drivers. The driver that Microsoft provides in MDAC is called the SQL Server ODBC Driver (SQLODBC), and (as the name implies) is designed for Microsoft's SQL Server. It supports SQL Server v6.5 and upwards.[4] ODBC allows programs to use SQL requests that will access databases without having to know the proprietary interfaces to the databases. It handles the SQL request and converts it into a request that the individual database system understands.

[edit] ADO

ActiveX Data Objects (ADO) is a high level programming interface to OLE DB. It uses a hierarchical object model to allow applications to programmatically create, retrieve, update and delete data from sources supported by OLE DB. ADO consists of a series of hierarchical COM-based objects and collections, an object that acts as a container of many other objects. A programmer can directly access ADO objects to manipulate data, or can send an SQL query to the database via several ADO mechanisms. ADO is made up of nine objects and four collections.

The collections are:

  1. Fields: This collection contains a set of Field objects. The Collection can be used in either a Recordset object or in a Record object. In a Recordset object, each of the Field objects that make up the Fields collection corresponds to a column in that Recordset object. In a Record object, a Field can be an absolute or relative URL that points into a tree-structured namespace (used for semi-structured data providers like the Microsoft OLE DB Provider for Internet Publishing) or as a reference to the default Stream object associated with that Record object.[5]
  2. Properties: An object can have more than one Property object, which are contained in the object's Properties collection.[6]
  3. Parameters: A Command object can have several Parameter commands to change its predefined behaviour, and each of the Parameter objects are contained in the Command object's Parameters collection[7]
  4. Errors: All provider created errors are passed to a collection of Error objects, while the Errors collection itself is contained in a Connection object. When an ADO operation creates an error, the collection is cleared and a new group of Error objects are created in the collection.[8]

The objects are:

  1. Connection: The connection object is ADO's connection to a data store via OLE DB. The connection object stores information about the session and provides methods of connecting to the data store. As some data stores have different methods of establishing a connection, some methods may not be supported in the connection object for particular OLE DB providers. A connection object connects to the data store using its 'Open' method with a connection string which specifies the connection as a list of key value pairs (for example: "Provider='SQLOLEDB';Data Source='TheSqlServer'; Initial Catalog='Northwind';Integrated Security='SSPI';").[9]The start of which must identify the type of data store connection that the connection object requires. This must be either:
    • an OLE DB provider (for example SQLOLEDB), using the syntax "provider="
    • a file name, using the syntax "file name="
    • a remote provider and server (see RDS), using the syntax "Remote provider=" and "Remote server="
    • an absolute URL, using the syntax "URL="[10]
  2. Command: After the connection object establishes a session to the data source, instructions are sent to the data provider via the command object. The command object can send SQL queries directly to the provider through the use of the CommandText property, send a parameterised query or stored procedure through the use of a Parameter object or Parameters collection or run a query and return the results to a dataset object via the Execute method. There are several other methods that can be used in the Command object relating to other objects, such as the Stream, RecordSet or Connection objects.[11]
  3. Recordset: A recordset is a group of records, and can either come from a base table or as the result of a query to the table. The RecordSet object contains a Fields collection and a Properties collection.[12] The Fields collection is a set of Field objects, which are the corresponding columns in the table. The Properties collection is a set of Property objects, which defines a particular functionality of an OLE DB provider. The RecordSet has numerous methods and properties for examining the data that exists within it.[13] Records can be updated in the recordset by changing the values in the record and then calling on the Update or UpdateBatch method. Adding new records is performed through the AddNew function and then by calling on the Update or UpdateBatch method.[14] Records are also deleted in the recordset with the Delete method and then by calling on the Update method. However, if for some reason the deletion cannot occur, such as because of violations in referential integrity, then the recordset will remain in edit mode after the call to the Update method. The programmer must explicitly call on the CancelUpdate function to cancel the update. Additionally, ADO can rollback transactions (if this is supported) and cancel batch updates.[15] Recordsets can also be updated in one of three ways: via an immediate update, via a batch update,[16]or through the use of transactions:
    1. Immediate: The recordset is locked using the adLockOptimistic or adLockPessimistic lock. The data are updated at the data source after the record is changed and the Update method is called.
    2. Batch: The recordset is locked using adLockBatchOptimistic and each time Update is called the data are updated in a temporary buffer. Finally, when UpdateBatch is called the data are completely updated back at the data source. This has the advantage of it all being done in memory, and if a problem occurs then UpdateCancel is called and the updates are not sent to the data source
    3. Transaction: If the OLE DB provider allows it, transactions can be used. To start the transaction, the programmer invokes the BeginTrans method and does the required updates. When they are all done, the programmer invokes the CommitTrans method. RollbackTrans can be invoked to cancel any changes made inside the transaction and rollback the database to the state before the transaction began[17]
  4. Record: This object represents one record in the database, and contains a fields collection. A RecordSet consists of a collection of Record objects.[18]
  5. Stream: A stream, mainly used in a RecordSet object, is a means of reading and writing a stream of bytes.[19] It is mostly used to save a recordset in an XML format,[20] to send commands to an OLE DB provider as an alternative to the CommandText object and to contain the contents of a binary or text file.
  6. Parameter: A parameter is a means of altering the behaviour of a common piece of functionality, for instance a stored procedure might have different parameters passed to it depending on what needs to be done; these are called parameterised commands.[21]
  7. Field: Each Record object contains many fields, and a RecordSet object has a corresponding Field object also. The RecordSet object's Field object corresponds to a column in the database table that it references.[22]
  8. Property: This object is specific to the OLE DB provider and defines an ability that the provider has implemented. A property object can be either a built-in property — it is a well defined property implemented by ADO already and thus cannot be altered — or can be a dynamic property — defined by the underlying data provider and can be changed[23]
  9. Error: When an OLE DB provider error occurs during the use of ADO, an Error object will be created in the Errors collection.[24] Other errors do not go into an Error object, however. For instance, any errors that occur when manipulating data in a RecordSet or Field object are stored in a Status property.[25]

[edit] ADO.NET

ADO.NET is the latest version of ADO (after ADO 2.8, now often referred to as ADO Classic) and is part of the MDAC 2.8 stack alongside classic ADO. It is built around Microsoft .NET. Though sometimes seen as an evolutionary step up from ADO, some fundamental structural changes were made by Microsoft. ADO.NET runs through a .NET Managed Provider, a modified version of an OLE DB provider specifically designed for .NET. The object structure is no longer built around a Recordset object. Instead a Dataset object is used to contain data gathered from multiple sources. This is transparent to the programmer. Unlike the old ADO Recordset, the Dataset's design allows for disconnected data. Conceptually, a Dataset object can be seen as a small in-memory relational database in its own right that allows for manipulation of data in any direction (a Recordset was a forward-only reader). In order to propagate changes back into the database, a Dataadapter object is used that transfers data from between the data source and the DataSet object. Cursors were also deprecated in ADO.NET, being replaced with a Datareader object, which is used to efficiently process a large list of results one record at a time without storing them

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
简化三步骤,轻松删除Microsoft Edge中的边框简化三步骤,轻松删除Microsoft Edge中的边框Sep 02, 2023 pm 02:57 PM

许多用户对MicrosoftEdge中网页周围的白色边框不满意。他们认为这是不必要的和分散注意力的,他们要求Microsoft完全删除MicrosoftEdge的边框。这类似于“不要修复没有损坏的东西”的说法,但Microsoft似乎没有考虑到这一点。当然,它是一种流行的网络浏览器,提供多种功能,包括内置广告拦截器、跟踪预防和密码管理器。但是,某些用户可能会发现浏览器在网页周围有边框。此边框可能会分散注意力或难看,有几种方法可以将其删除。在关于r/Edge的冗长对话中,一些普通的非内部用户发现,

Windows 中的 Microsoft 365 Copilot、Bing Chat Enterprise 和 Copilot 之间的主要区别Windows 中的 Microsoft 365 Copilot、Bing Chat Enterprise 和 Copilot 之间的主要区别Sep 23, 2023 pm 03:57 PM

目前,Microsoft为企业客户提供三种不同的AI助手:Microsoft365Copilot,BingChatEnterprise和Windows中的Copilot。我们想解释一下这三个选项之间的区别。CopilotinWindows:Windows中的Copilot是一个功能强大的工具,可帮助您更快,轻松地完成任务。您可以从任务栏或按Win+C无缝访问Copilot,它将在您使用的任何应用程序旁边提供帮助。Windows中的Copilot具有新图标,新的用户体验和BingChat。它将于2

如何登录Win10的Microsoft账户如何登录Win10的Microsoft账户Jan 01, 2024 pm 05:58 PM

Microsoft账户是可以在win10系统中登陆的,只是还有很多的小伙伴不知道该怎么去登陆,今天就给你们带来了win10microsoft账户登陆方法,快来一起看看吧。win10microsoft账户怎么登陆:1、点击左下角开始,点击齿轮打开设置。2、随后找到“账户”并点击打开。3、进入账户后点击左侧的“电子邮件和应用账户”。4、随后点击右边的“添加账户”。5、进入账户界面后会出现很多的选项,点击第一个“outlook”。6、再出现的Microsoft账户窗口中输入账号即可。7、全部完成后即可

修复:不支持安装此应用包修复:不支持安装此应用包Apr 13, 2023 am 11:43 AM

微软将UWP(通用Windows平台)和桌面应用程序分发为.msixbundle。应用和 .Windows 中的 AppxBundle 应用包。尽管 Msixbundle、Appx 和 AppxPackage 安装程序是旁加载应用包的可靠方法,但多个用户无法这样做。为什么我会收到“应用包不受支持”错误?我们的一些读者在尝试旁加载应用包(尤其是从非官方来源下载的应用包)时收到“应

Windows 12 将免费升级,不需要订阅Windows 12 将免费升级,不需要订阅Oct 21, 2023 am 11:17 AM

Microsoft不适用于基于订阅的Windows12版本,也不会向您收取任何费用。人们仍在谈论Windows12是基于订阅的,这是一个基于Windows11预览版本中的代码字符串的谣言。有些人仍然想知道Microsoft计划如何将他们的下一个版本的Windows作为订阅模式。事实证明,一些媒体讨论的谣言是基于Windows11的“物联网企业订阅”,而不是WindowsvNext。对于那些不知道的人,Windows24H2或WindowsvNext是Windows12的公开名称。一些媒体将Win

修复 OneDrive 中的“您的帐户目前无法使用”错误提示修复 OneDrive 中的“您的帐户目前无法使用”错误提示Sep 13, 2023 am 08:33 AM

尝试在Windows中登录也不起作用。然而,对Microsoft账户的检查显示,它没有问题。我能够在Windows和Web上登录和注销Microsoft帐户,并且能够访问所有服务。只有OneDrive似乎受到影响。Microsoft的错误消息,就像大多数时候一样,不是很有帮助,因为它太通用了,没有多大用处。它以以下语句开头:“你的OneDrive或配置文件可能会被暂时阻止,因为它遇到了异常大量的流量。在这种情况下,该块将在24小时后删除”接下来是另一句话,列出了可能导致临时帐户暂停的其他原因:“

下载和安装Clipchamp在Windows 11和Windows 365上的方法下载和安装Clipchamp在Windows 11和Windows 365上的方法Aug 01, 2023 pm 11:34 PM

早在去年九月,我们就通知您,Microsoft刚刚购买了Clickchamp,并计划将其作为Windows本机应用程序。最近,我们发现这家雷德蒙德科技巨头将在最新的DevChannelInsider版本中添加该软件。在Clipchamp中,据说用户发现了更多独特的产品,比如一个库存库,里面装满了超过一百万个免版税的视频、音轨和可以添加到视频中的图像。甚至还有一个由Azure提供支持的文本到语音生成器,能够以70多种语言创建画外音。Clipchamp还与OneDrive连接,这意味着您可以快速安全

microsoft sql server是什么软件microsoft sql server是什么软件Feb 28, 2023 pm 03:00 PM

microsoft sql server是Microsoft公司推出的关系型数据库管理系统,是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理,具有使用方便可伸缩性好与相关软件集成程度高等优点。SQL Server数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境