| title | When to Use | |||
|---|---|---|---|---|
| description | Decide whether to use SQL Server Native Client, which is one of several technologies that you can use to access data in a SQL Server database. | |||
| author | markingmyname | |||
| ms.author | maghan | |||
| ms.date | 03/14/2017 | |||
| ms.service | sql | |||
| ms.subservice | native-client | |||
| ms.topic | reference | |||
| helpviewer_keywords |
|
[!INCLUDESQL Server Azure SQL Database Synapse Analytics PDW]
Important
[!INCLUDEsnac-removed-oledb-and-odbc]
[!INCLUDEssNoVersion] Native Client is one technology that you can use to access data in a [!INCLUDEssNoVersion] database. For a discussion of the different data-access technologies, see Data Access Technologies Road Map
When deciding whether to use [!INCLUDEssNoVersion] Native Client as the data access technology of your application, you should consider several factors.
For new applications, if you're using a managed programming language such as Microsoft Visual C# or Visual Basic, and you need to access the new features in [!INCLUDEssNoVersion], you should use the .NET Framework Data Provider for [!INCLUDEssNoVersion], which is part of the .NET Framework.
If you are developing a COM-based application and need to access the new features introduced in [!INCLUDEssNoVersion], you should use [!INCLUDEssNoVersion] Native Client. If you don't need access to the new features of [!INCLUDEssNoVersion], you can continue to use Windows Data Access Components (WDAC).
For existing OLE DB and ODBC applications, the primary issue is whether you need to access the new features of [!INCLUDEssNoVersion]. If you have a mature application that does not need the new features of [!INCLUDEssNoVersion], you can continue to use WDAC. But if you do need to access those new features, such as the xml data type, you should use [!INCLUDEssNoVersion] Native Client.
Both [!INCLUDEssNoVersion] Native Client and MDAC support read committed transaction isolation using row versioning, but only [!INCLUDEssNoVersion] Native Client supports snapshot transaction isolation. (In programming terms, read committed transaction isolation with row versioning is the same as Read-Committed transaction.)
For information about the differences between [!INCLUDEssNoVersion] Native Client and MDAC, see Updating an Application to SQL Server Native Client from MDAC.
SQL Server Native Client Programming
ODBC How-to Topics
OLE DB How-to Topics