Running Stored Procedures (OLE DB)
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.
When executing statements, calling a stored procedure on the data source (instead of executing or preparing a statement in the client application directly) can provide:
Reduced network overhead.
The SQL Server Native Client OLE DB provider supports three of the mechanisms that SQL Server stored procedures use to return data:
Every SELECT statement in the procedure generates a result set.
The procedure can return data through output parameters.
The procedure can have an integer return code.
The application must be able to handle all of these outputs from stored procedures.
Different OLE DB providers return output parameters and return values at different times during result processing. In case of the SQL Server Native Client OLE DB provider, the output parameters and return codes are not supplied until after the consumer has retrieved or canceled the result sets returned by the stored procedure. The return codes and the output parameters are returned in the last TDS packet from the server.
Providers use the DBPROP_OUTPUTPARAMETERAVAILABILITY property to report when it returns output parameters and return values. This property is in the DBPROPSET_DATASOURCEINFO property set.
The SQL Server Native Client OLE DB provider sets the DBPROP_OUTPUTPARAMETERAVAILABILITY property to DBPROPVAL_OA_ATROWRELEASE to indicate that return codes and output parameters are not returned until the result set is processed or released.