Windows 64 で動作するネイティブ C++ アプリケーションがありますが、ATL を使用しません (今後も使用しません)。アプリケーションからネットワーク経由で SQL Server 2012 に接続できるようにしたいと考えています。
次の要件があります。
パフォーマンスが鍵
C++ は、レコードを挿入するだけで (たとえば、Stored Procs を呼び出して)、他には何も挿入しません (選択、削除、更新は行いません)。
レコードの挿入はノンブロッキング (非同期) である必要があります。
上記の基準を満たしているため、OLE DB と ODBC に選択肢を絞り込みました。ただし、インターネットには、何を使用するかについて相反するアドバイスがたくさんあるようです。例:
「ODBC と OLE DB のどちらを使用して SQL Server データベースにアクセスするかを選択できる場合は、OLE DB を選択してください。一般に、OLE DB の方が高速です。[7.0、2000、2005] 2006 年 2 月 20 日更新」ソース: http://www .sql-server-performance.com/2007/odbc-oledb/
「OLE DB は非推奨です」ソース: http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspx
「新しい SQL Server アプリケーションの開発に OLE DB を使用しないでください。テクノロジー ロードマップを更新して、SQLNCLI、SQLNCLI10、SQLNCLI11 、または SQLOLEDB OLE DB プロバイダーを使用する既存の SQL Server アプリケーションを SQL Server Native Client ODBC ドライバーに移行する方向に進んでください。」ソース: http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspxただし、SQLNCLI11 は MSDN に基づく SQL Server Native Client ODBC ドライバーです: http://msdn.microsoft .com/library/ms130904.aspxでは、ブログのタイプミスでしたか?
私は本当に混乱しており、私の基準で SQL Server にアクセスするための最良のテクノロジについて、さらに意見を求めたいと思います。