데이터 응용 프로그램 이식Porting Data Applications

수년에 걸쳐 Visual C++는 데이터베이스로 작업하는 여러 가지 방법을 제공했습니다.Over the years, Visual C++ has provided several ways to work with databases. 2011년에 Microsoft는 네이티브 코드에서 SQL Server 제품에 액세스하기 위한 기본 기술로서 Visual C++가 ODBC에 정렬되어 있다고 발표했습니다.In 2011 Microsoft announced that it is aligning on ODBC as the preferred technology for accessing SQL Server products from native code. ODBC는 산업 표준으로, 이것을 사용하여 여러 플랫폼 및 데이터 소스에서 코드의 이식성을 극대화할 수 있습니다.ODBC is an industry standard, and by using it you gain maximum portability of your code over multiple platforms and data sources. 대부분의 SQL 데이터베이스 제품 및 많은 NoSQL 제품이 ODBC를 지원합니다.Most SQL database products and many NoSQL products support ODBC. 하위 수준 ODBC API를 호출하여 ODBC를 직접 사용할 수도 있고, MFC ODBC 래퍼 클래스 또는 타사 C++ 래퍼 라이브러리를 사용할 수도 있습니다.You can use ODBC directly by calling the low-level ODBC APIs, or you can use the MFC ODBC wrapper classes, or a third-party C++ wrapper library.

OLE DB는 COM 사양을 기반으로 하는 하위 수준의 고성능 API이며 Windows에서만 지원됩니다.OLE DB is a low-level, high-performance API based on the COM specification, and is only supported on Windows. 프로그램이 연결된 서버에 액세스하는 경우 OLE DB를 사용합니다.Use OLE DB if your program is accessing linked servers. ATL은 사용자 지정 OLE DB 공급자 및 소비자를 보다 쉽게 생성할 수 있도록 하는 OLE DB 템플릿을 제공합니다.ATL provides OLE DB templates that make it easier to create custom OLE DB providers and consumers. 최신 버전의 OLE DB는 SQL Native Client 11에서 제공합니다.The most recent version of OLE DB shipped in SQL Native Client 11.

레거시 응용 프로그램이 OLE DB 또는 더 높은 수준의 ADO 인터페이스를 사용하여 SQL Server에 연결하는 경우 연결된 서버에 액세스하지 않으려면 곧 ODBC로 마이그레이션하는 것이 좋습니다.If your legacy application uses OLE DB or the higher-level ADO interface to connect to SQL Server, and you are not accessing linked servers, you should consider migrating to ODBC in the near future. 플랫폼 간 이식성 또는 최신 SQL Server 기능이 필요하지 않은 경우 ODBC용 Microsoft OLE DB Provider(MSDASQL)를 사용할 수 있습니다.If you do not require cross-platform portability or the latest SQL Server features, you can possibly use the Microsoft OLE DB Provider for ODBC (MSDASQL). MSDASQL은 OLEDB 및 ADO(내부적으로 OLEDB 사용)에서 빌드된 응용 프로그램이 ODBC 드라이버를 통해 데이터 소스에 액세스하도록 허용합니다.MSDASQL allows applications that are built on OLE DB and ADO (which uses OLEDB internally) to access data sources through an ODBC driver. 다른 변환 계층과 마찬가지로 MSDASQL도 데이터베이스 성능에 영향을 줄 수 있습니다.As with any translation layer, MSDASQL can impact database performace. 그러한 영향이 응용 프로그램에 중요한지 여부를 확인하려면 테스트해야 합니다.You should test to determine whether the impact is signifant for your application. MSDASQL은 Windows 운영 체제와 함께 제공되며 Windows Server 2008 및 Windows Vista SP1은 64비트 버전을 포함할 수 있는 최초의 Windows 릴리스입니다.MSDASQL ships with the Windows operating system, and Windows Server 2008 & Windows Vista SP1 are the first Windows releases to include a 64-bit version of the technology.

OLE DB와 ODBC 드라이버가 단일 DLL에 포함된 SQL Native Client 구성 요소(SNAC)는 ODBC 응용 프로그램에 대해서는 사용되지 않습니다.The SQL Native Client component (SNAC), which packages OLE DB and ODBC drivers in a single DLL, is deprecated for ODBC applications. SNAC의 SQL Server 2012 버전(SQLNCLI11.DLL)은 다른 SQL Server 구성 요소가 종속되어 있는 SQL Server 2016 함께 제공됩니다.The SQL Server 2012 version of SNAC (SQLNCLI11.DLL) ships with SQL Server 2016 because other SQL Server components depend on it. 그러나 ODBC를 통해 SQL Server 또는 Azure SQL Database에 연결하는 새로운 C++ 응용 프로그램은 최신 ODBC 드라이버를 사용해야 합니다.However, new C++ applications that connect to SQL Server or Azure SQL Database via ODBC should use the most recent ODBC driver. 자세한 내용은 SQL Server Native Client 프로그래밍을 참조하세요.For more information, see SQL Server Native Client Programming

C++/CLI를 사용하는 경우에는 ADO.NET을 계속 사용할 수 있습니다.If you use C++/CLI, you can continue to use ADO.NET as always. 자세한 내용은 ADO.NET을 사용하여 데이터 액세스(C++/CLI)Visual Studio에서 데이터 액세스를 참조하세요.For more information, see Data Access Using ADO.NET (C++/CLI), and Accessing data in Visual Studio.

  • ODBC 래퍼 클래스 외에도 MFC는 Access 데이터베이스에 연결하기 위한 데이터 액세스 개체(DAO) 래퍼 클래스도 제공합니다.In addition to the ODBC wrapper classes, MFC also provides Data Acess Objects (DAO) wrapper classes for connecting to Access databases. 그러나 DAO는 사용되지 않습니다.However, DAO is obsolete. CDaoDatabase 또는 CDaoRecordset 기반의 모든 코드를 업그레이드해야 합니다.Any code based on CDaoDatabase or CDaoRecordset should be upgraded.

Microsoft Windows에서 데이터 액세스 기술의 기록에 대한 자세한 내용은 Microsoft Data Access Components(Wikipedia)를 참조하세요.For more information about the history of data access technologies on Microsoft Windows, see Microsoft Data Access Components (Wikipedia).

참고 항목See Also

Visual C++의 데이터 액세스Data Access in Visual C++
Microsoft ODBC(Open Database Connectivity)Microsoft Open Database Connectivity (ODBC)
데이터 액세스 기술 로드맵Data Access Technologies Road Map