Conversione di applicazioni datiPorting Data Applications

Nel corso degli anni, Visual C++ ha proposto diversi metodi per usare i database.Over the years, Visual C++ has provided several ways to work with databases. Nel 2011 Microsoft ha annunciato la scelta di ODBC come tecnologia preferenziale per l'accesso ai prodotti SQL Server da codice nativo.In 2011 Microsoft announced that it is aligning on ODBC as the preferred technology for accessing SQL Server products from native code. ODBC è uno standard del settore e l'uso di questa tecnologica consente di ottenere la massima portabilità del codice su più piattaforme e origini dati.ODBC is an industry standard, and by using it you gain maximum portability of your code over multiple platforms and data sources. La maggior parte dei prodotti database SQL e molti prodotti non SQL supportano ODBC.Most SQL database products and many NoSQL products support ODBC. È possibile usare ODBC chiamando direttamente le API ODBC di basso livello oppure è possibile usare le classi wrapper ODBC MFC o una libreria wrapper C++ di terze parti.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 è un'API di basso livello, ad alte prestazioni basata sulla specifica COM e supportata solo in Windows.OLE DB is a low-level, high-performance API based on the COM specification, and is only supported on Windows. Usare OLE DB se il programma accede a server collegati.Use OLE DB if your program is accessing linked servers. ATL offre modelli OLE DB che rendono più semplice creare consumer e provider OLE DB personalizzati.ATL provides OLE DB templates that make it easier to create custom OLE DB providers and consumers. La versione più recente di OLE DB è stata fornita con SQL Native Client 11.The most recent version of OLE DB shipped in SQL Native Client 11.

Se un'applicazione legacy usa OLE DB o l'interfaccia ADO di livello più alto per connettersi a SQL Server e non si accede a server collegati, è consigliabile eseguire la migrazione a ODBC in un prossimo futuro.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. Se non sono richieste la portabilità tra piattaforme o le funzionalità di SQL Server più recenti, è verosimilmente possibile usare il provider Microsoft OLE DB per ODBC (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 consente alle applicazioni basate su OLE DB e ADO (che usa OLE DB internamente) di accedere alle origini dati tramite un driver ODBC.MSDASQL allows applications that are built on OLE DB and ADO (which uses OLEDB internally) to access data sources through an ODBC driver. Come per qualsiasi livello di conversione, MSDASQL può avere un impatto negativo sulle prestazioni del database.As with any translation layer, MSDASQL can impact database performace. È consigliabile eseguire test per stabilire se l'impatto è significativo per l'applicazione specifica.You should test to determine whether the impact is signifant for your application. MSDASQL viene fornito con il sistema operativo Windows e Windows Server 2008 e Windows Vista SP1 sono le prime versioni di Windows a includere una versione a 64 bit della tecnologia.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.

Il componente SQL Native Client (SNAC), che include i driver OLE DB e ODBC in una singola DLL, è deprecato per le applicazioni ODBC.The SQL Native Client component (SNAC), which packages OLE DB and ODBC drivers in a single DLL, is deprecated for ODBC applications. La versione di SQL Server 2012 di SNAC (SQLNCLI11.DLL) viene fornita con SQL Server 2016 perché altri componenti di SQL Server dipendono da esso.The SQL Server 2012 version of SNAC (SQLNCLI11.DLL) ships with SQL Server 2016 because other SQL Server components depend on it. Per le nuove applicazioni C++ che si connettono a SQL Server o al database SQL di Azure tramite ODBC è tuttavia consigliabile usare il driver ODBC più recente.However, new C++ applications that connect to SQL Server or Azure SQL Database via ODBC should use the most recent ODBC driver. Per altre informazioni, vedere SQL Server Native Client Programming (Programmazione con SQL Server Native Client).For more information, see SQL Server Native Client Programming

Se si usa C++/CLI, è possibile continuare a usare ADO.NET come sempre.If you use C++/CLI, you can continue to use ADO.NET as always. Per altre informazioni, vedere Accesso ai dati tramite ADO.NET (C++/CLI) e Accesso ai dati in Visual Studio.For more information, see Data Access Using ADO.NET (C++/CLI), and Accessing data in Visual Studio.

  • Oltre alle classi wrapper ODBC, MFC fornisce anche classi wrapper DAO (Data Access Objects) per la connessione a database di Access.In addition to the ODBC wrapper classes, MFC also provides Data Acess Objects (DAO) wrapper classes for connecting to Access databases. Tuttavia, DAO è obsoleto.However, DAO is obsolete. Qualsiasi codice basato su CDaoDatabase o CDaoRecordset deve essere aggiornato.Any code based on CDaoDatabase or CDaoRecordset should be upgraded.

Per altre informazioni sulla storia delle tecnologie di accesso ai dati in Microsoft Windows, vedere Microsoft Data Access Components (Wikipedia).For more information about the history of data access technologies on Microsoft Windows, see Microsoft Data Access Components (Wikipedia).

Vedere ancheSee Also

Accesso ai dati in Visual C++Data Access in Visual C++
Microsoft Open Database Connectivity (ODBC)Microsoft Open Database Connectivity (ODBC)
Data Access Technologies Road Map (Guida di orientamento per le tecnologie di accesso ai dati)Data Access Technologies Road Map