SQL Server Native Client (SNAC) is not supported beyond SQL Server 2012. Avoid using SNAC in new development work, and plan to modify applications that currently use it. The Microsoft ODBC Driver for SQL Server provides native connectivity from Windows to Microsoft SQL Server and Microsoft Azure SQL Database.
A stored procedure is a precompiled executable object that contains one or more Transact-SQL statements. Stored procedures can have input and output parameters and can also put out an integer return code. An application can enumerate available stored procedures by using catalog functions.
ODBC applications that target SQL Server should only use direct execution to call a stored procedure. When connected to earlier versions of SQL Server, the SQL Server Native Client ODBC driver implements SQLPrepare Function by creating a temporary stored procedure, which is then called on SQLExecute. It adds overhead to have SQLPrepare create a temporary stored procedure that only calls the target stored procedure versus directly executing the target stored procedure. Even when connected to an instance of SQL Server, preparing a call requires an extra round trip across the network and the building of an execution plan that just calls the stored procedure execution plan.
ODBC applications should use the ODBC CALL syntax when executing a stored procedure. The driver is optimized to use a remote procedure call mechanism to call the procedure when the ODBC CALL syntax is used. This is more efficient than the mechanism used to send a Transact-SQL EXECUTE statement to the server.
For more information, see Running Stored Procedures.