如何:呼叫預存程序 (ODBC)
當 SQL 陳述式使用 ODBC CALL 逸出子句呼叫預存程序時,SQL Server 驅動程式會使用遠端預存程序呼叫 (RPC) 機制將程序傳送到 SQL Server。RPC 要求會略過 SQL Server 中大部分的陳述式剖析和參數處理,也比使用 Transact-SQL EXECUTE 陳述式來得快。
如需示範此功能的範例應用程式,請參閱 CodePlex 上所提供處理傳回程式碼和輸出參數的範例;如需詳細資訊,請參閱<SQL Server Database Engine 範例>。
將程序當做 RPC 執行
建構使用 ODBC CALL 逸出序列的 SQL 陳述式。此陳述式會針對每個輸入、輸入/輸出和輸出參數,以及程序傳回值 (若有) 使用參數標記:
{? = CALL procname (?,?)}
針對每個輸入、輸入/輸出和輸出參數,以及程序傳回值 (若有) 呼叫SQLBindParameter。
使用 SQLExecDirect 執行此陳述式。
[!附註]
如果應用程式使用 Transact-SQL EXECUTE 語法 (相對於 ODBC CALL 逸出序列) 來提交程序,則 SQL Server ODBC 驅動程式會將程序呼叫當做 SQL 陳述式 (而不是 RPC) 傳遞到 SQL Server。此外,如果使用 Transact-SQL EXECUTE 陳述式,則不會傳回輸出參數。