title: SQL Server 2012 via native C++ (no ATL) preferred access method from Windows
body: <p>I have a native C++ application that runs under Windows 64, it doesn't use ATL (and will not). I want to be able to connect from my application to SQL Server 2012 over the network.</p>
  
  <p>I have the following requirements:</p>
  
  <ul>
  <li><p>Performance is the key</p></li>
  <li><p>The C++ will only insert records (say by calling Stored Procs), nothing else (no selects, deletes or updates).</p></li>
  <li><p>Record insertions should be non-blocking (async).</p></li>
  </ul>
  
  <p>I narrowed my choices down to OLE DB and ODBC as they satisfy the criteria above. However, it seems that the Internet have loads of contradicting advice of what to use. Examples:</p>
  
  <ul>
  <li><p>"If you have a choice between using ODBC or OLE DB to access your SQL Server database, choose OLE DB, as it is generally faster. [7.0, 2000, 2005] Updated 2-20-2006" source: <a href="http://www.sql-server-performance.com/2007/odbc-oledb/" rel="nofollow">http://www.sql-server-performance.com/2007/odbc-oledb/</a> </p></li>
  <li><p>"OLE DB is deprecated" source: <a href="http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspx" rel="nofollow">http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspx</a></p></li>
  <li><p>"Avoid using OLE DB for new SQL Server application development. Update your technology roadmap to move towards migrating existing SQL Server applications that use the SQLNCLI, SQLNCLI10, <strong>SQLNCLI11</strong> or SQLOLEDB OLE DB providers to the SQL Server Native Client ODBC driver."  source: <a href="http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspx" rel="nofollow">http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspx</a> but SQLNCLI11 is the SQL Server Native Client ODBC driver based on MSDN: <a href="http://msdn.microsoft.com/library/ms130904.aspx" rel="nofollow">http://msdn.microsoft.com/library/ms130904.aspx</a> so, was it a typo in the blog?</p></li>
  </ul>
  
  <p><strong>I am really confused and would like to take more opinions on the best technology to access SQL Server with my criteria.</strong></p>