Datenzugriffsprogrammierung (MFC/ATL)
Über die Jahre hinweg hat Visual C++ mehrere Möglichkeiten zum Arbeiten mit Datenbanken bereitgestellt. Im Jahr 2011 kündigte Microsoft an, dass es auf Open Database Verbinden ivity (ODBC) als bevorzugte Technologie für den Zugriff auf SQL Server-Produkte aus systemeigenem Code ausgerichtet ist. ODBC ist ein Branchenstandard, durch dessen Verwendung Sie die maximale Portabilität Ihres Codes über mehrere Plattformen und Datenquellen erreichen. Die meisten SQL-Datenbankprodukte und viele NoSQL-Produkte unterstützen ODBC. Sie können ODBC direkt verwenden, indem Sie die ODBC-APIs auf niedriger Ebene aufrufen, oder Sie können die MFC-ODBC-Wrapperklassen oder eine C++-Wrapperbibliothek eines Drittanbieters verwenden.
OLE DB ist eine leistungsstarke API auf niedriger Ebene, die auf der COM-Spezifikation basiert und nur unter Windows unterstützt wird. Verwenden Sie OLE DB, wenn Ihr Programm auf Verbindungsserver zugreift. ATL stellt OLE DB-Vorlagen bereit, die das Erstellen von benutzerdefinierten OLE DB-Anbietern und -Consumern vereinfachen. Der neueste Anbieter für Microsoft SQL Server finden Sie in der Dokumentation für die OLE DB-Treiber für SQL Server.
Porting data applications (Portieren von Datenanwendungen)
Wenn Ihre Legacyanwendung OLE DB oder die ADO-Schnittstelle auf höherer Ebene zum Herstellen einer Verbindung mit SQL Server verwendet, sollten Sie die Migration zu den neuesten OLE DB-Treiber für SQL Server in Betracht ziehen, um die neuesten SQL Server-Features nutzen zu können. Eine weitere Alternative, wenn Sie keine plattformübergreifende Portabilität oder die neuesten SQL Server-Features benötigen, können Sie möglicherweise den Microsoft OLE DB-Anbieter für ODBC (MSDASQL) verwenden. MSDASQL ermöglicht Anwendungen, die auf OLE DB und ADO (das OLE DB intern verwendet) erstellt wurden, den Zugriff auf Datenquellen über einen ODBC-Treiber. Wie bei jeder Übersetzungsebene kann sich MSDASQL auf die Datenbankleistung auswirken. Sie sollten testen, ob die Auswirkungen für Ihre Anwendung von Bedeutung sind. MSDASQL ist im Lieferumfang des Windows-Betriebssystems enthalten, und Windows Server 2008 sowie Windows Vista SP1 sind die ersten Windows-Releases, in denen eine 64-Bit-Version der Technologie enthalten ist.
Wenn Ihre C++-Anwendung eine Verbindung mit SQL Server oder Azure SQL-Datenbank über ODBC herstellt, sollte sie den neuesten ODBC-Treiber verwenden.
Wenn Sie C++/CLI verwenden, können Sie weiterhin wie gewohnt ADO.NET verwenden. Weitere Informationen finden Sie unter Datenzugriff mit ADO.NET (C++/CLI) und Zugreifen auf Daten in Visual Studio.
- Neben den ODBC-Wrapperklassen stellt MFC auch Wrapperklassen für Datenzugriffsobjekte (Data Access Object, DAO) zum Herstellen einer Verbindung mit Access-Datenbanken bereit. DAO ist jedoch veraltet. Jeglicher Code, der auf CDaoDatabase oder CDaoRecordset basiert, sollte upgegradet werden.
Weitere Informationen zur Geschichte von Datenzugriffstechnologien unter Windows finden Sie unter Microsoft Data Access Components (Wikipedia) (Microsoft-Datenzugriffskomponenten).