Microsoft Data Access Components
   HOME

TheInfoList



OR:

Microsoft Data Access Components (MDAC; also known as Windows DAC) is a
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
of interrelated
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
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 In computing, Microsoft's ActiveX Data Objects (ADO) comprises a set of Component Object Model (COM) objects for accessing data sources. A part of MDAC (Microsoft Data Access Components), it provides a middleware layer between programming lan ...
(ADO),
OLE DB OLE DB (''Object Linking and Embedding, Database'', sometimes written as OLEDB or OLE-DB), an API designed by Microsoft, allows accessing data from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using ...
, and
Open Database Connectivity In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
(ODBC). There have been several deprecated components as well, such as the
Jet Database Engine The Access Database Engine (also Office Access Connectivity Engine or ACE and formerly Microsoft Jet Database Engine, ''Microsoft JET Engine'' or simply ''Jet'') is a database engine on which several Microsoft products have been built. The firs ...
, MSDASQL (the OLE DB provider for ODBC), and
Remote Data Services Remote Data Services (RDS, formerly known as Advanced Data Connector or ADC) is an older technology that is part of Microsoft SQL Server, and used in conjunction with ActiveX Data Objects (ADO). RDS allowed the retrieval of a set of data from a dat ...
(RDS). Some components have also become
obsolete Obsolescence is the state of being which occurs when an object, service, or practice is no longer maintained or required even though it may still be in good working order. It usually happens when something that is more efficient or less risky r ...
, such as the former
Data Access Objects Jet Data Access Objects is a general programming interface for database access on Microsoft Windows systems, primarily for Jet and ACE databases. History DAO were originally called VT Objects. DAO 1.0 came up in November 1992 as part of Acc ...
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
and
Remote Data Objects Remote Data Objects (abbreviated RDO) is an obsolete data access application programming interface primarily used in Microsoft Visual Basic applications on Windows 95 and later operating systems. This includes database connection, queries, stored ...
. 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 Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
and
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical user interface, graphical web browsers developed by Microsoft which was used in the Microsoft Wind ...
, 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 Privilege escalation is the act of exploiting a bug, a design flaw, or a configuration oversight in an operating system or software application to gain elevated access to resources that are normally protected from an application or user. The res ...
, although the vulnerabilities were generally fixed in later versions and fairly promptly. The current version is 2.8
service pack In computing, a service pack comprises a collection of updates, fixes, or enhancements to a software program delivered in the form of a single installable package. Companies often release a service pack when the number of individual patches to a ...
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 Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
.


Architecture

The latest version of MDAC (2.8) consists of several interacting components, all of which are
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
specific except for
ODBC In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
(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 OLE DB (''Object Linking and Embedding, Database'', sometimes written as OLEDB or OLE-DB), an API designed by Microsoft, allows accessing data from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using ...
, .NET managed providers and
ODBC In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
drivers), and the database itself. These component layers are all made available to applications through the MDAC
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
. The
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
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.


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 protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
s. 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 Windows NT is a proprietary graphical operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems sc ...
operating system line's
Win32 The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
subsystem A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its environment, is described by its boundaries, structure and purpose and expressed ...
. 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 In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ot ...
), and has support for a
session layer In the seven-layer OSI model of computer networking, the session layer is layer 5. The session layer provides the mechanism for opening, closing and managing a session between end-user application processes, i.e., a semi-permanent dialogue. ...
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 The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
and
named pipes In computing, a named pipe (also known as a FIFO for its behavior) is an extension to the traditional pipe concept on Unix and Unix-like systems, and is one of the methods of inter-process communication (IPC). The concept is also found in OS/2 an ...
network libraries (named pipes are a method of communicating with other processes via a system-persistent
pipeline Pipeline may refer to: Electronics, computers and computing * Pipeline (computing), a chain of data-processing stages or a CPU optimization found on ** Instruction pipelining, a technique for implementing instruction-level parallelism within a s ...
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 Sockets 2 API directly. The Banyan VINES,
AppleTalk AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Computer for their Macintosh computers. AppleTalk includes a number of features that allow local area networks to be connected with no prior setup or the n ...
, ServerNet,
IPX/SPX IPX/SPX stands for Internetwork Packet Exchange/Sequenced Packet Exchange. IPX and SPX are networking protocols used initially on networks using the (since discontinued) Novell NetWare operating systems. They also became widely used on netwo ...
, 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 In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can decip ...
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 In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Shared memory is an efficient means of passing data between progr ...
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.Kalen Delaney, "Inside Microsoft SQL Server 2000", ''Microsoft Press'', pp. 70–74.


OLE DB

OLE DB OLE DB (''Object Linking and Embedding, Database'', sometimes written as OLEDB or OLE-DB), an API designed by Microsoft, allows accessing data from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using ...
(also called OLEDB or OLE-DB) allows MDAC applications access to different types of ( ata stores in a uniform manner. Microsoft has used this technology to separate the application from data can store in the website 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 A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in cel ...
, through to such complex databases as
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
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 Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
from version 6.5 upwards.


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 The dialog box (also called dialogue box (non-U.S. English), message box or simply dialog) is a graphical control element in the form of a small window that communicates information to the user and prompts them for a response. Dialog boxes are ...
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 In computer programming, indirection (also called dereferencing) is the ability to reference something using a name, reference, or container instead of the value itself. The most common form of indirection is the act of manipulating a value throug ...
. Additionally, the dialog box specifies a number of alternate OLE DB data providers for a variety of target applications.''MSDN''
"Creating a udl file"
"ADO 2.8 API Reference", accessed April 28, 2007.


ODBC

Open Database Connectivity In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
(ODBC) is a native interface that is accessed through a
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
(usually C) that can make calls into a
native library In computer science, a library is a collection of non-volatile memory, non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, Code r ...
. 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.''
ibid. Ibid. is an abbreviation for the Latin word '' ibīdem'', meaning "in the same place", commonly used in an endnote, footnote, bibliography citation, or scholarly reference to refer to the source cited in the preceding note or list item. This ...
''
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. According to Microsoft, "After SQL Server 2012, the ODBC driver will be updated for the most recent server features, including Microsoft Windows Azure SQL Database, and released as the Microsoft ODBC Driver for SQL Server."Prash Shirolkar (Author); Alyssa Henry (contributor); Stephen Pepitone (Contributor); Acey J. Bunch (contributor); David Schwartz (contributor)
"Data Access Technologies Road Map"
''
Microsoft Corporation Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
'', accessed March 1, 2018.


ADO

ActiveX Data Objects In computing, Microsoft's ActiveX Data Objects (ADO) comprises a set of Component Object Model (COM) objects for accessing data sources. A part of MDAC (Microsoft Data Access Components), it provides a middleware layer between programming lan ...
(ADO) is a high-level programming interface to OLE DB. It uses a hierarchical
object Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ...
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 Collection or Collections may refer to: * Cash collection, the function of an accounts receivable department * Collection (church), money donated by the congregation during a church service * Collection agency, agency to collect cash * Collection ...
. The collections are: # 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 Semi-structured data is a form of structured data that does not obey the tabular structure of data models associated with relational databases or other forms of data tables, but nonetheless contains tags or other markers to separate semantic eleme ...
providers like the Microsoft OLE DB Provider for Internet Publishing) or as a reference to the default Stream object associated with that Record object.''MSDN''
"Fields Collection"
"ADO 2.8 API Reference", accessed September 19, 2005.
# Properties: An object can have more than one Property object, which are contained in the object's Properties collection.''MSDN''
"Properties Collection"
"ADO 2.8 API Reference", accessed September 19, 2005.
# 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''MSDN''
"Parameters Collection"
"ADO 2.8 API Reference", accessed September 19, 2005.
# 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.''MSDN''
"Errors Collection"
"ADO 2.8 API Reference", accessed September 19, 2005.
The objects are: # 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';").''MSDN''
"Using a connection object"
"ADO 2.8 Programmers Guide", accessed September 10, 2005.
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="''MSDN''
"ADO Connection String"
"ADO 2.8 Programmers Guide", accessed September 10, 2005.
# 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 A stored procedure (also termed proc, storp, sproc, StoPro, StoredProc, StoreProc, sp, or SP) is a subroutine available to applications that access a relational database management system (RDBMS). Such procedures are stored in the database data dic ...
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.''MSDN''
"Command Object Overview"
"ADO 2.8 Programmers Guide", accessed September 10, 2005
# 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.''MSDN''
"Examining Data"
"ADO 2.8 Programmers Guide", accessed September 10, 2005.
The Fields collection is a set of Field objects, which are the corresponding
columns A column or pillar in architecture and structural engineering is a structural element that transmits, through compression, the weight of the structure above to other structural elements below. In other words, a column is a compression member. ...
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.A full list of ADO methods and properties that allow the examination of data in a recordset can be found i
Microsoft's API documentation
/ref> 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.''MSDN''
"Editing data"
"ADO 2.8 Programmers Guide", accessed September 10, 2005.
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 Referential integrity is a property of data stating that all its references are valid. In the context of relational databases, it requires that if a value of one attribute (column) of a relation (table) references a value of another attribute (ei ...
, 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 roll back transactions (if this is supported) and cancel batch updates.''MSDN''
"Deleting records using the Delete method"
"ADO 2.8 Programmers Guide", accessed September 10, 2005.
Recordsets can also be updated in one of three ways: via an immediate update, via a batch update,''MSDN''
"Updating and Persisting Data"
"ADO 2.8 Programmers Guide", accessed September 12, 2005.
or through the use of transactions: ## 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. ## 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 ## 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 roll back the database to the state before the transaction began''MSDN''
"Transaction Processing"
"ADO 2.8 Programmers Guide", accessed September 12, 2005.
# Record: This object represents one record in the database, and contains a fields collection. A RecordSet consists of a collection of Record objects.''MSDN''
"Record Object"
"ADO 2.8 API Reference", accessed September 12, 2005.
# Stream: A stream, mainly used in a RecordSet object, is a means of reading and writing a stream of bytes.''MSDN''
"Records and Streams"
"ADO 2.8 Programmers Guide", accessed September 12, 2005.
It is mostly used to save a recordset in an XML format,''MSDN''
"Streams and Persistence"
"ADO 2.8 Programmers Guide", accessed September 12, 2005.
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. # 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''.''MSDN''
"Parameter Object"
"ADO 2.8 API Reference", accessed September 12, 2005.
# 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 A column or pillar in architecture and structural engineering is a structural element that transmits, through compression, the weight of the structure above to other structural elements below. In other words, a column is a compression member. ...
in the database table that it references.''MSDN''
"Field Object"
"ADO 2.8 API Reference", accessed September 12, 2005.
# 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 a ''dynamic'' property – defined by the underlying data provider and can be changed''MSDN''
"Property Object"
"ADO 2.8 Programmers Guide", accessed September 13, 2005.
# Error: When an OLE DB provider
error An error (from the Latin ''error'', meaning "wandering") is an action which is inaccurate or incorrect. In some usages, an error is synonymous with a mistake. The etymology derives from the Latin term 'errare', meaning 'to stray'. In statistics ...
occurs during the use of ADO, an Error object will be created in the Errors collection.''MSDN''
"Error Handling"
"ADO 2.8 Programmers Guide", accessed September 18, 2005.
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.''MSDN''
"Field-Related Error Information"
"ADO 2.8 Programmers Guide", accessed September 18, 2005; & ''MSDN''
"Recordset-Related Error Information"
"ADO 2.8 Programmers Guide", accessed September 18, 2005.


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 The Microsoft .NET strategy is a marketing plan that Microsoft followed in the early 2000s. Steve Ballmer described it as the company's "most ambitious undertaking since Internet Strategy Day in 1995". In support of this strategy, between 2000 and ...
. 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 promotes the use of 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. 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.
Cursor Cursor may refer to: * Cursor (user interface), an indicator used to show the current position for user interaction on a computer monitor or other display device * Cursor (databases), a control structure that enables traversal over the records in ...
s 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.Doug Rothaus & Mike Pizzo
"ADO.NET for the ADO Programmer"
''MSDN'', accessed September 22, 2005.


Deprecated and obsolete components

MDAC is a continually evolving component framework. As such, there have been several components that were previously part of it but have since been deprecated or removed entirely from the framework.


Jet Database Engine and JRO

Jet stands for ''Joint Engine Technology'' and was a
database engine A database engine (or storage engine) is the underlying software component that a database management system (DBMS) uses to create, read, update and delete (CRUD) data from a database. Most database management systems include their own application ...
used for
Microsoft Access Microsoft Access is a database management system (DBMS) from Microsoft that combines the relational Access Database Engine (ACE) with a graphical user interface and software-development tools (not to be confused with the old Microsoft Access w ...
,
Microsoft Exchange Server Microsoft Exchange Server is a mail server and calendaring server developed by Microsoft. It runs exclusively on Windows Server operating systems. The first version was called Exchange Server 4.0, to position it as the successor to the related ...
and
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to: * Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET * Visual Basic (cl ...
. Jet was part of a
Relational Database Management System A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
(RDBMS) and offered a single
interface Interface or interfacing may refer to: Academic journals * ''Interface'' (journal), by the Electrochemical Society * ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics'' * '' Inte ...
that other software could use to access Microsoft databases. Jet also provided support for security,
referential integrity Referential integrity is a property of data stating that all its references are valid. In the context of relational databases, it requires that if a value of one attribute (column) of a relation (table) references a value of another attribute (ei ...
,
transaction processing Transaction processing is information processing in computer science that is divided into individual, indivisible operations called ''transactions''. Each transaction must succeed or fail as a complete unit; it can never be only partially comple ...
,
index Index (or its plural form indices) may refer to: Arts, entertainment, and media Fictional entities * Index (''A Certain Magical Index''), a character in the light novel series ''A Certain Magical Index'' * The Index, an item on a Halo megastru ...
ing, record and page locking, and data replication. In later versions of Jet, the engine was extended to run SQL queries, store character data in
Unicode Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
format, create
views A view is a sight or prospect or the ability to see or be seen from a particular place. View, views or Views may also refer to: Common meanings * View (Buddhism), a charged interpretation of experience which intensely shapes and affects thou ...
, and allowed bi-directional replication with the Microsoft SQL Server. It was superseded by
MSDE Microsoft SQL Server Data Engine (MSDE, also Microsoft Data Engine or Microsoft Desktop Engine) is a relational database management system developed by Microsoft. It is a scaled-down version of Microsoft SQL Server 7.0 or 2000 which is free for n ...
which was superseded
SQL Server Express Microsoft SQL Server Express is a version of Microsoft's Microsoft SQL Server, SQL Server relational database management system that is free to download, distribute and use. It comprises a database specifically targeted for Embedded system, embedd ...
. There were three modules to Jet. One was the Native Jet ISAM Driver, a Jet
dynamic link library Dynamic-link library (DLL) is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. These libraries usually have the file extension DLL, OCX (for libraries containing ActiveX controls), or ...
(DLL) that could directly manipulate Microsoft Access database files (MDB), which was a modified form of an
Indexed Sequential Access Method ISAM (an acronym for indexed sequential access method) is a method for creating, maintaining, and manipulating computer files of data so that records can be retrieved sequentially or randomly by one or more keys. Indexes of key fields are mainta ...
(ISAM) database. Another one of the modules were the ISAM Drivers, DLLs that allowed access to ISAM databases, among them being
Xbase xBase is the generic term for all programming languages that derive from the original dBASE ( Ashton-Tate) programming language and database formats. These are sometimes informally known as dBASE "clones". While there was a non-commercial predec ...
,
Paradox A paradox is a logically self-contradictory statement or a statement that runs contrary to one's expectation. It is a statement that, despite apparently valid reasoning from true premises, leads to a seemingly self-contradictory or a logically u ...
,
Btrieve Btrieve is a transactional database ( navigational database) software product. It is based on Indexed Sequential Access Method (ISAM), which is a way of storing data for fast retrieval. There have been several versions of the product for DOS, Li ...
and
FoxPro FoxPro was a text-based procedurally oriented programming language and database management system (DBMS), and it was also an object-oriented programming language, originally published by Fox Software and later by Microsoft, for MS-DOS, Windows ...
files. The final module was the Data Access Objects (DAO) DLL,
DAO Dao, Dão or DAO may refer to: * Tao (Chinese: "The Way" 道), a philosophical concept * Dao (Chinese sword) (刀), a type of Chinese sword * Dao (Naga sword), a weapon and a tool of Naga people People and language * Yao people, a minority ethni ...
allowed programmers access to the Jet engine. It was basically an
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
data language used by Access Basic and
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to: * Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET * Visual Basic (cl ...
application developers to access Jet. Similarly, the ''Microsoft Jet OLE DB Provider and Replication Objects'' (JRO) which allowed replication between Jet data sources was removed from MDAC 2.6''Microsoft''
Deprecated Components (OLE DB)
retrieved August 5, 2005.


MSDASQL and Oracle ODBC

The Microsoft OLE DB Provider for ODBC, or MSDASQL, was an OLE DB provider for allowing
ActiveX Data Objects In computing, Microsoft's ActiveX Data Objects (ADO) comprises a set of Component Object Model (COM) objects for accessing data sources. A part of MDAC (Microsoft Data Access Components), it provides a middleware layer between programming lan ...
access to databases via any ODBC driver. Microsoft supplied several OLE-DB providers (for the Indexing Service,
Active Directory Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. It is included in most Windows Server operating systems as a set of processes and services. Initially, Active Directory was used only for centralize ...
, Jet, SQL Server, Oracle (MSDAORA ) and Internet Publishing), however unless otherwise directed, ADO defaulted to using MSDASQL as the default provider. After MDAC 2.5 both the Oracle ODBC driver and MSDASQL supported Oracle 7 and partially supported Oracle 8i. Features that were not supported were: * CLOB,
BLOB Blob may refer to: Science Computing * Binary blob, in open source software, a non-free object file loaded into the kernel * Binary large object (BLOB), in computer database systems * A storage mechanism in the cloud computing platform M ...
, BFILE, NCHAR, NCLOB, and NVARCHAR2 Oracle datatypes * Unicode support for Oracle 7.x and 8i * multiple client instances of Oracle * nested
outer join A join clause in SQL – corresponding to a join operation in relational algebra – combines columns from one or more tables into a new table. Informally, a join stitches two tables and puts on the same row records with matching fields : INNER, ...
s Microsoft initially deprecated the MSDASQL component for their 64-bit operating systems''Microsoft'', "Data Access Technologies Road Map", Deprecated MDAC Components, ''Microsoft'
"ADO Programmer's Guide" Appendix A: Providers, Microsoft OLE DB Provider for ODBC
, retrieved July 30, 2005.
and the Microsoft Oracle ODBC driver was later superseded by a .NET Managed Oracle Provider, which supported Oracle 9i. ''Microsoft'', MS KB article 244661
INFO: Limitations of Microsoft Oracle ODBC Driver and OLEDB Provider
last reviewed August 25, 2004, retrieved August 4, 2005.
However,
Windows Server 2008 Windows Server 2008 is the fourth release of the Windows Server operating system produced by Microsoft as part of the Windows NT family of the operating systems. It was released to manufacturing on February 4, 2008, and generally to retail on Fe ...
and
Windows Vista SP1 Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
ship with a 64-bit version of MSDASQL.


Remote Data Services (RDS)

Remote Data Services Remote Data Services (RDS, formerly known as Advanced Data Connector or ADC) is an older technology that is part of Microsoft SQL Server, and used in conjunction with ActiveX Data Objects (ADO). RDS allowed the retrieval of a set of data from a dat ...
(RDS) allowed the retrieval of a set of data from the server, which the client then altered in some way and then sent back to the server for further processing.''Microsoft''
"Remote Data Service (RDS)"
retrieved August 11, 2005.
With the popular adoption of
Transact-SQL Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to the SQL (Structured Query Language) used to interact with relational databases. T-SQL expands on the SQL standard to include procedural programming, local variables, vari ...
, which extends SQL with such programming constructs as loops and conditional statements, this became less necessary and it was eventually deprecated in MDAC 2.7. Microsoft produced
SOAP Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are use ...
Toolkit 2.0, which allows clients to do this via an open
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
-based standard.''Microsoft'', "Data Access Technologies Roadmap", "Deprecated MDAC Components"


SQLXML

SQLXML was designed for SQL Server 2000, but was deprecated with MDAC 2.6. It allowed Microsoft's relational database to be viewed by
XPath XPath (XML Path Language) is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) and can be used to compute values (e.g., strings, numbers, or Boolean v ...
and allowed data to viewable as an
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
file. It has not actually been deprecated but has been removed from later versions of MDAC, though Microsoft does provide it as a downloadable component and will support it on their 64-bit operating systems.


Obsolete components

Several components have been completely removed from MDAC by Microsoft and are no longer supported. They are: * ESQL/C:
Embedded SQL Embedded SQL is a method of combining the computing power of a programming language and the database Data Manipulation Language, manipulation capabilities of SQL. Embedded SQL statement (programming), statements are SQL statements written inline wi ...
(also known as E-SQL or ESQL/C) is a way of using SQL when programming in Visual C. Microsoft dropped support for this after SQL Server 6.5 was released, though they did license some of the ESQL/C run-time environment to a company called
Micro Focus Micro Focus International plc is a British multinational software and information technology business based in Newbury, Berkshire, England. The firm provides software and consultancy. The company is listed on the London Stock Exchange and is ...
, who develops
COBOL COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily us ...
compilers and toolsKalen Delaney, "Inside Microsoft SQL Server 2000", ''Microsoft Press'', p65. * DAO: DAO, or
Data Access Objects Jet Data Access Objects is a general programming interface for database access on Microsoft Windows systems, primarily for Jet and ACE databases. History DAO were originally called VT Objects. DAO 1.0 came up in November 1992 as part of Acc ...
were an
object oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
interface created by Microsoft which allowed early versions of
Microsoft Access Microsoft Access is a database management system (DBMS) from Microsoft that combines the relational Access Database Engine (ACE) with a graphical user interface and software-development tools (not to be confused with the old Microsoft Access w ...
and
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to: * Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET * Visual Basic (cl ...
to access the
Jet Database Engine The Access Database Engine (also Office Access Connectivity Engine or ACE and formerly Microsoft Jet Database Engine, ''Microsoft JET Engine'' or simply ''Jet'') is a database engine on which several Microsoft products have been built. The firs ...
. Later (in version 3.5) it was able to bypass the Jet engine altogether and directly access
ODBC In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
data sources.Christine Solomon, "Microsoft Office 97 Developer's Handbook", ''Microsoft Press''. pp. 195–200. * RDO:
Remote Data Objects Remote Data Objects (abbreviated RDO) is an obsolete data access application programming interface primarily used in Microsoft Visual Basic applications on Windows 95 and later operating systems. This includes database connection, queries, stored ...
, or RDO, was a
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
technology that allowed for the creation of interfaces that directly called on ODBC. RDO version 2.0 was the final version developed by Microsoft. * DB-Library: a C-based API that allowed an application to interact with SQL Server. It will not be supported on any product after SQL Server 2000, and no features were added after SQL Server 6.5.


History

Microsoft has released several versions of MDAC over time. The distribution method has varied and the feature-set is different for each version.


MDAC 1.0

MDAC 1.0 was first released in August 1996. Christian Koller
"ADO und MDAC Versionen"
: ''MDAC 1.0 and 1.1 (OLE DB 1.0 and OLE DB 1.1)'' accessed July 1, 2005.
According to Microsoft, "MDAC 1.0 existed more as concept than a coordinated, stand-alone setup program." The MDAC 1.0 stack consisted of ODBC 3.0, OLE DB 1.1, ADO 1.0, and the
Advanced Data Connector Remote Data Services (RDS, formerly known as Advanced Data Connector or ADC) is an older technology that is part of Microsoft SQL Server, and used in conjunction with ActiveX Data Objects (ADO). RDS allowed the retrieval of a set of data from a dat ...
(ADC) 1.0 – which according to Microsoft was the precursor to the Remote Data Service of MDAC 1.5. It also included ODBC drivers for Access/Jet, SQL Server and
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
databases. MDAC 1.0 was released via several mechanisms: the Advanced Data Connector shipped with
Internet Information Server Internet Information Services (IIS-pronounced 2S, formerly Internet Information Server) is an extensible web server software created by Microsoft for use with the Windows NT family. IIS supports HTTP, HTTP/2, HTTPS, FTP, FTPS, SMTP and NNTP. ...
(IIS) 3.0 and as a downloadable cab file; OLE DB 1.1 and ADO 1.0 shipped with the OLE DB 1.1 SDK, which came with
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platfor ...
97 and was also downloadable. MDAC 1.0 came with Active Server Pages, that itself came in IIS 3.0, and also came with
Visual InterDev Microsoft Visual InterDev, part of Microsoft Visual Studio 97 and 6.0, is an IDE used to create web applications using Microsoft Active Server Pages ( ASP) technologies. It has code completion, database server management tools, and an integrated d ...
1.0.


MDAC 1.5

MDAC 1.5 was released between September 1997 and March 1998, and involved a more centralised distribution mechanism than MDAC 1.0. It was released with Microsoft Internet Explorer 4.0, the Internet Client SDK 4.0 and through a CD-ROM given out at the 1997
Professional Developers Conference Microsoft's Professional Developers Conference (PDC) was a series of conferences for software developers; the conference was held infrequently to coincide with beta releases of the Windows operating system, and showcased topics of interest to thos ...
(PDC). There were five versions of MDAC 1.5: * MDAC 1.5 (initial release): included with Internet Explorer 4.0 and the Internet Client SDK. * MDAC 1.5a: downloadable from Microsoft's website * MDAC 1.5b: came with
Windows NT 4.0 Windows NT 4.0 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It is the direct successor to Windows NT 3.51, which was released to manufacturing on July 31, 1996, and then to retail ...
Option Pack & Office 97 * MDAC 1.5c: fixed issues with ADO threading and ODBC Connection Pooling and was distributed via the Microsoft website. It only came with the ADO/MDAC runtime components. * MDAC 1.5d: came included with
Windows 98 Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. The second operating system in the 9x line, it is the successor to Windows 95, and was released to ...
and
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical user interface, graphical web browsers developed by Microsoft which was used in the Microsoft Wind ...
4.01 service pack 1. The different versions of MDAC 1.5 consisted of: * ODBC 3.5 * OLE DB 1.5 * ADO 1.5 * Remote Data Service 1.5, which superseded the Advanced Data Connector. This version of MDAC had a security flaw that made it vulnerable to an
escalated privileges attack Privilege escalation is the act of exploiting a bug, a design flaw, or a configuration oversight in an operating system or software application to gain elevated access to resources that are normally protected from an application or user. The res ...
. The vulnerability caused systems that had both IIS and MDAC installed to give an unauthorized web user the ability to execute shell commands on the IIS system as a privileged user. This allowed the attacker to use MDAC to tunnel SQL and other ODBC data requests through the public connection to a private back-end network when on a
multi-homed Multihoming is the practice of connecting a host or a computer network to more than one network. This can be done in order to increase reliability or performance. A typical host or end-user network is connected to just one network. Connecting to ...
Internet-connected IIS system. It also allowed the user to gain unauthorized access to secured, non-published files on the IIS system''Microsoft''
Microsoft Security Program: Frequently Asked Questions: Microsoft Security Bulletin (MS99-025)
accessed July 6, 2005.
MDAC 1.5 was the last data access component release supported under Windows NT 3.51 SP5.


MDAC 2.0

MDAC 2.0 was distributed with the Data Access 2.0 SDK and included the contents of MDAC 1.5, the ODBC 3.5 SDK and the OLE DB 1.5 SDK, and the OLE DB for
OLAP Online analytical processing, or OLAP (), is an approach to answer multi-dimensional analytical (MDA) queries swiftly in computing. OLAP is part of the broader category of business intelligence, which also encompasses relational databases, repor ...
Specification. It also had included many updates to the core product, including a security feature added to the RDS which prevented it from being used maliciously an IIS server.''Microsoft''
PRB: RDS Handler Error Messages Due to Security Settings
(last reviewed September 30, 2003), accessed July 6, 2005
Microsoft Security Program: Microsoft Security Bulletin (MS98-004)
: "Unauthorized ODBC Data Access with RDS and IIS" (last revision: July 17, 1998), accessed July 6, 2005; CVE vulnerability .
This version came included in Windows NT 4.0 SP4,Christian Koller

: MDAC 2.0, accessed July 1, 2005.
and also with Visual Studio 6.0, which came with the full Data Access SDK.


MDAC 2.1

MDAC 2.1 was distributed with SQL Server 7.0 and SQL Server 6.5 SP5. MDAC 2.1 SP1 was distributed with Internet Explorer 5 and MDAC 2.1 SP1a (GA) was distributed with
Microsoft Office Microsoft Office, or simply Office, is the former name of a family of client software, server software, and services developed by Microsoft. It was first announced by Bill Gates on August 1, 1988, at COMDEX in Las Vegas. Initially a marketin ...
2000, BackOffice 4.5 and Visual Studio 98 SP3. However, none of these versions of MDAC were released to the general public via the
World Wide Web The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet. Documents and downloadable media are made available to the network through web se ...
. MDAC 2.1 SP2 was distributed from Microsoft's website. The components that were included with 2.1 were: * ADO 2.1 * RDS 2.1 * OLE DB 2.1 * the OLE DB Provider for ODBC, SQL Server and Oracle * JRO 2.1 * a Jet driver * RDO. Christian Koller
"ADO und MDAC Versionen"
: MDAC 2.1, accessed July 1, 2005.
This version had security vulnerabilities whereby an unchecked buffer could allow an elevated privileges attack. This was found some time later and it affected MDAC 2.1, 2.5 and 2.6 and was addressed in a later patch''Microsoft'', "Data Access Components: Security Hotfix for Q329414"
Microsoft Security Bulletin MS02-06
– originally Microsoft KB article Q329414) – (originally posted November 20, 2002), accessed July 6, 2005.


MDAC 2.5

MDAC 2.5 was released on February 17, 2000 and distributed with
Windows 2000 Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RTM), releas ...
, and the MDAC service packs were released in parallel with the Windows 2000 service packs. They were also distributed through Microsoft's website. Three service packs were released. The components included with 2.5 were: * ADO 2.5 * ADO MD 2.5 * ADOX 2.5 * RDS 2.5 * OLE DB 2.5 * many OLE DB Providers * JRO 2.5 * ODBC 3.51 * many ODBC drivers * many Jet drivers. Christian Koller
"ADO und MDAC Versionen"
: MDAC 2.5, accessed July 1, 2005.
Several issues were found in this version of MDAC. When using OLE DB Session Pooling, Microsoft COM+ would try to continuously load and unload OLE DB, and a conflict could arise that caused the OLE DB Session Pooling to run at 100% CPU usage. This was later fixed.''Microsoft'', MS KB article 320700
"OLE DB Session Pooling Causes 100 Percent CPU Usage (MDAC 2.5)"
accessed July 6, 2005.
Microsoft published a full list of bugs fixed i
MDAC 2.5 Service Pack 2
an
MDAC 2.5 Service Pack 3
A security vulnerability also existed (later fixed) whereby an unchecked buffer was found in the SQL Server Driver. This flaw was introduced in MDAC 2.5 SP2.


MDAC 2.6

MDAC 2.6 was released in September 2000 and was distributed through the web and with Microsoft SQL Server 2000''Microsoft'', MS KB article 84227
Release manifest for MDAC 2.6 (2.60.6526.3)
accessed July 6, 2005.
MDAC 2.6 RTM, SP1 (released June 20, 2001), and SP2 (released June 11, 2002) were distributed in parallel with the Microsoft SQL Server 2000 service packs, and could also be downloaded from the Microsoft website. Beginning with this version of MDAC, Microsoft Jet, Microsoft Jet OLE DB Provider, and the ODBC Desktop Database Drivers were not included. Instead, these could be installed manually.''Microsoft'', MS KB article 27190
MDAC version 2.6 and later do not contain Jet or Desktop ODBC drivers
accessed July 6, 2005.
Microsoft also released an alert warning that MDAC 2.6 should not be installed on an SQL Server 7.0 Cluster, because "if you install MDAC 2.6 or later on any node in the cluster, directly or through the installation of another program, it may cause a catastrophic failure of the SQL Server Agent or other SQL Server services."''Microsoft'', MS KB article 82075
MDAC 2.6 or later should not be installed on SQL Server 7.0 clusters
accessed July 6, 2005.
This issue affected
Veritas Software Veritas Technologies LLC. is an American international data management company headquartered in Santa Clara, California. The company has its origins in Tolerant Systems, founded in 1983 and later renamed Veritas Software. It specializes in stora ...
's Backup Exec 9.0 for Windows Servers, because it installs Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) as its database. Revision 4367 installed MDAC version 2.6 SP2 while revision 4454 installed MDAC version 2.7 SP1, which did not have the problem''Veritas'', Document ID: 25814
VERITAS Backup Exec (tm) 9.0 for Windows Servers should not be installed on a Microsoft SQL Server 7.0 Cluster.


MDAC 2.7

MDAC 2.7 was released in October 2001 through Microsoft's website. A refresh release was issued in April 2002 through the release of Windows XP and through Microsoft's website. Version 2.7 was available in
U.S. English American English, sometimes called United States English or U.S. English, is the set of varieties of the English language native to the United States. English is the most widely spoken language in the United States and in most circumstances ...
, Chinese (Traditional and Simplified), German, Japanese, Korean,
Brazilian Portuguese Brazilian Portuguese (' ), also Portuguese of Brazil (', ) or South American Portuguese (') is the set of varieties of the Portuguese language native to Brazil and the most influential form of Portuguese worldwide. It is spoken by almost all of ...
,
Czech Czech may refer to: * Anything from or related to the Czech Republic, a country in Europe ** Czech language ** Czechs, the people of the area ** Czech culture ** Czech cuisine * One of three mythical brothers, Lech, Czech, and Rus' Places * Czech, ...
, Danish, Greek, Slovak,
Slovenian Slovene or Slovenian may refer to: * Something of, from, or related to Slovenia, a country in Central Europe * Slovene language, a South Slavic language mainly spoken in Slovenia * Slovenes The Slovenes, also known as Slovenians ( sl, Sloven ...
, Spanish, Finnish, French, Hungarian, Italian,
Dutch Dutch commonly refers to: * Something of, from, or related to the Netherlands * Dutch people () * Dutch language () Dutch may also refer to: Places * Dutch, West Virginia, a community in the United States * Pennsylvania Dutch Country People E ...
, Norwegian, Polish, Portuguese, Russian, Swedish, and
Turkish Turkish may refer to: *a Turkic language spoken by the Turks * of or about Turkey ** Turkish language *** Turkish alphabet ** Turkish people, a Turkic ethnic group and nation *** Turkish citizen, a citizen of Turkey *** Turkish communities and mi ...
.
Hebrew Hebrew (; ; ) is a Northwest Semitic language of the Afroasiatic language family. Historically, it is one of the spoken languages of the Israelites and their longest-surviving descendants, the Jews and Samaritans. It was largely preserved ...
and
Arabic Arabic (, ' ; , ' or ) is a Semitic languages, Semitic language spoken primarily across the Arab world.Semitic languages: an international handbook / edited by Stefan Weninger; in collaboration with Geoffrey Khan, Michael P. Streck, Janet C ...
were only available through Windows XP. The main feature change was support for Microsoft's
64-bit In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
operating system, however support for Banyan VINES was also dropped from this version of MDAC. There were several known issues: MDAC 2.7 continued causing connectivity problems on clustered servers running Microsoft SQL Server 6.5 or SQL Server 7.0, with no workaround provided by Microsoft. When creating or configuring ODBC data source names (DSNs) using the Microsoft SQL Server ODBC driver the network library protocol might unexpectedly switch to
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
, even if the DSN was configured to use
named pipes In computing, a named pipe (also known as a FIFO for its behavior) is an extension to the traditional pipe concept on Unix and Unix-like systems, and is one of the methods of inter-process communication (IPC). The concept is also found in OS/2 an ...
.''Microsoft'', MS KB article 28957
PRB: Configuring DSNs with SQL Server Net-Libraries.
/ref> This issue was found by ''
InfoWorld ''InfoWorld'' (abbreviated IW) is an information technology media business. Founded in 1978, it began as a monthly magazine. In 2007, it transitioned to a web-only publication. Its parent company today is International Data Group, and its siste ...
'' reporter Randall C. Kennedy, who identified that the change was actually made in MDAC 2.6 but was never documented. It was discovered when testing client/server database workloads on a Windows XP computer; ''InfoWorld'' claims that although overall server CPU utilization rose by only 8 percent using TCP/IP,
context switch In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processes ...
es per second dropped by more than 150 percent (which is of course impossible because you would then have a negative context switch rate - the drop is either 33% or 60% depending on which planet the author was on at the time of writing) for a 10-user workload. They were unimpressed that a fundamental functional change to the default behaviour of Net-Lib occurred without more than a passing mention in an unrelated document. Windows XP users also sometimes experienced problems connecting to SQL Server because SQL Server attempts to use certificates it finds on the local computer, however if there is more than one certificate available it did not know which one to use.''Microsoft'', MS KB article 30939
SQL Server 2000 installation or local connections fail with "SSL Security error:ConnectionOpen (SECDoClientHandshake())" error message.
/ref> When attempting to use
Microsoft Analysis Services Microsoft SQL Server Analysis Services (SSAS) is an online analytical processing (OLAP) and data mining tool in Microsoft SQL Server. SSAS is used as a tool by organizations to analyze and make sense of information possibly spread out across mul ...
2000 RTM, an error would sometimes appear when trying to browse cubes.''Microsoft'', MS KB article 29723
FIX: Cannot Browse Cubes or Process Mining Model After You Install Analysis Services 2000 RTM.
/ref> Microsoft also discovered a problem in
Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1x, and was released to manufacturin ...
,
Windows 98 Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. The second operating system in the 9x line, it is the successor to Windows 95, and was released to ...
, and
Windows Me Windows Millennium Edition, or Windows Me (marketed with the pronunciation of the pronoun "me"), is an operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It is the successor to Windo ...
's setup program which prevented the MDAC installation program from rolling back when it encountered an installation error.''Microsoft'', MS KB article 31172
PRB: MDAC Rollback May Fail on Windows 95, Windows 98, and Windows Millennium Edition.
/ref> Several security issues were resolved by Microsoft for MDAC 2.7.
David Litchfield David Litchfield (born 1975) is a British security expert and The Director of Information Security Assurance for Apple. Anne Saita, writing for ''Information Security'' magazine, called him along with his brother Mark Litchfield, "World's Best Bu ...
of
Next Generation Security Software Ltd Next may refer to: Arts and entertainment Film * ''Next'' (1990 film), an animated short about William Shakespeare * ''Next'' (2007 film), a sci-fi film starring Nicolas Cage * '' Next: A Primer on Urban Painting'', a 2005 documentary film Lit ...
reported a security vulnerability that results because one of the ODBC functions in MDAC that is used to connect to data sources contained an unchecked buffer.''Microsoft''
Microsoft Security Bulletin MS02-040 Unchecked Buffer in MDAC Function Could Enable System Compromise (Q326573)
Another vulnerability that was fixed was one whereby an attacker could respond to an SQL Server discovery message broadcast by clients with a specially crafted packet that could cause a buffer overflow.''Microsoft''
Microsoft Security Bulletin MS03-033 Unchecked Buffer in MDAC Function Could Enable System Compromise (823718)
/ref> Another flaw was found whereby code could be executed remotely when the attacker responded to the broadcast with another specially crafted packet.''Microsoft''
Microsoft Security Bulletin MS04-003 Buffer Overrun in MDAC Function Could Allow Code Execution (832483)
/ref>


MDAC 2.8

MDAC 2.8 was released in August 2003 and distributed with Microsoft
Windows Server 2003 Windows Server 2003 is the sixth version of Windows Server operating system produced by Microsoft. It is part of the Windows NT family of operating systems and was released to manufacturing on March 28, 2003 and generally available on April 24, 2 ...
, as well as on Microsoft'
Data Access Technologies
website. It did not introduce any new features to the product but fixed a number of bugs and security issues – a reg file (automates changes to the registry) was removed that made the server run in an "unsafe" mode whereby the RDS could be exploited to gain unauthorized access to the system''Microsoft''. MS KB article 818490
INFO: Handunsf.reg File Has Been Removed in MDAC 2.8 Redist Setup for Security Reasons
/ref> and a new restriction was imposed on the length of the Shape query string.''Microsoft''. MS KB article 838405
FIX: "Argument passed to data shaping service was invalid" error after you apply MDAC 2.8
/ref> There were also several ODBC Administrator changes.''Microsoft''. MS KB article 818489
INFO: ODBC Administrator Changes in MDAC 2.8
On May 23, 2005 Brad Rhodes (Lead Program Manager of Microsoft Data Access Technologies) announced that MDAC 2.8 SP1 was the last stand-alone redistributable of MDAC that Microsoft will ship. MDAC is now an official component of the Microsoft's operating system, though they will be providing ongoing bug and security fixes to previously released versions of the web-distributable version.Brad Rhodes (blog entry)
The end of the MDAC Redistributable
May 23, 2005, retrieved August 11, 2005; & ''Microsoft'', MS KB article 892854
"Release strategy for Microsoft Data Access Components"
last updated January 24, 2005, retrieved August 11, 2005.
However, Microsoft have created a new component called the SQL Native Client (SQLNCLI), which is a stand-alone data access API that has combined the OLE DB and ODBC libraries into one DLL. It was formed to be independent of MDAC, which is now reliant on the state the operating system is in – a developer now links to this library and avoids situations where an update of the operating system which updates MDAC breaks applications built to a different version of MDAC.Acey J. Bunch (April 26, 2005)
"Introducing SQL Native Client"
''MSDN''
blog A blog (a truncation of "weblog") is a discussion or informational website published on the World Wide Web consisting of discrete, often informal diary-style text entries (posts). Posts are typically displayed in reverse chronological order ...
entry.
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearly ...
SP1 has broken
forward compatibility Forward compatibility or upward compatibility is a design characteristic that allows a system to accept input intended for a later version of itself. The concept can be applied to entire systems, electrical interfaces, telecommunication signals, d ...
of MDAC 2.8. Software compiled on Windows 7 SP1 that relies on MDAC ADO will not work on Windows versions prior to Windows 7 SP1 (including Windows 7 RTM, Vista, XP).''MSDN''
"Breaking change in MDAC ADODB COM components in Windows 7 Service Pack 1"
"Forum", accessed March 9, 2011.
Microsoft has provided solutions to work around this issue for some applications but VBA applications remain affected.''KB 2517589''
"An ADO application that is re-compiled on a Windows 7 Service Pack 1-based computer does not run on down-level operating systems"
"", accessed March 17, 2011.
The fix for this issue has been release in February 2012.''KB 2640696''
"An ADO-based application that is compiled in Windows 7 SP1 or in Windows Server 2008 R2 SP1 does not run in earlier versions of Windows"
"", accessed April 20, 2012.


Windows DAC 6.0

Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
will no longer use MDAC, but instead use Windows DAC, which consists of updated versions of ADO, OLE DB, and ODBC components. According to Microsoft, "Windows DAC includes some changes to work with Windows Vista, but is almost entirely functionally equivalent to MDAC 2.8."''
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
''
"FAQ About Windows DAC/MDAC"
Accessed 12th December, 2006.


Version checking

There are two ways of checking the version of MDAC that is installed on a computer. For Windows 2000, Windows XP and Windows Server 2003, one way to check is via Microsoft'
Component Checker
program, which compares the value of each installed MDAC DLL to the MDAC file manifest. The second way is to check the key HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer in the
Windows registry The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and use ...
. Microsoft notes that this information may be incorrect for versions of MDAC prior to 2.1 when compared with the versions of the MDAC files installed to the system''Microsoft''. MS KB article 301202
How to check for MDAC version
last updated January 18, 2005, retrieved September 29, 2005.


References


Further reading

* * * * * *


External links


Microsoft MDAC Center

MDAC Downloads

MDAC History
{{Microsoft APIs Data Access Components