如何:呼叫預存程序 (ODBC)

當 SQL 陳述式使用 ODBC CALL 逸出子句呼叫預存程序時,Microsoft® SQL Server™ 驅動程式會使用遠端預存程序呼叫 (RPC) 機制將程序傳送到 SQL Server。RPC 要求會略過 SQL Server 中大部分的陳述式剖析和參數處理,也比使用 Transact-SQL EXECUTE 陳述式來得快。

如需示範此功能的範例應用程式,請參閱 CodePlex 上所提供processing return codes and output parameters的範例。如需詳細資訊,請參閱<SQL Server Database Engine 範例>。

若要將程序當做 RPC 執行

  1. 建構使用 ODBC CALL 逸出序列的 SQL 陳述式。此陳述式會針對每個輸入、輸入/輸出和輸出參數,以及程序傳回值 (若有) 使用參數標記:

    {? = CALL procname (?,?)}
    
  2. 針對每個輸入、輸入/輸出和輸出參數,以及程序傳回值 (若有) 呼叫SQLBindParameter

  3. 使用 SQLExecDirect 執行此陳述式。

[!附註]

如果應用程式使用 Transact-SQL EXECUTE 語法 (相對於 ODBC CALL 逸出序列) 來提交程序,則 SQL Server ODBC 驅動程式會將程序呼叫當做 SQL 陳述式 (而不是 RPC) 傳遞到 SQL Server。此外,如果使用 Transact-SQL EXECUTE 陳述式,則不會傳回輸出參數。