Freigeben über


Vorgehensweise: Aufrufen gespeicherter Prozeduren (ODBC)

Wenn eine SQL-Anweisung eine gespeicherte Prozedur mit der ODBC CALL-Escape-Klausel aufruft, sendet der SQL Server-Treiber die Prozedur mit dem RPC-Mechanismus (Remote Stored Procedure Call) an SQL Server. RPC-Anforderungen umgehen größtenteils das Analysieren der Anwendungen und die Parameterverarbeitung in SQL Server und sind schneller als die Transact-SQL EXECUTE-Anweisung.

Eine Beispielanwendung, die diese Funktion veranschaulicht, finden Sie im Beispiel zum Verarbeiten von Rückgabecodes und Ausgabeparametern, verfügbar auf CodePlex; weitere Informationen finden Sie unter Beispiele für SQL Server Database Engine.

So führen Sie eine Prozedur als RPC aus

  1. Erstellen Sie eine SQL-Anweisung, die die ODBC CALL-Escapesequenz verwendet. Die Anweisung verwendet Parametermarkierungen für jeden Eingabe-, Eingabe/Ausgabe- und Ausgabeparameter sowie für den Prozedurrückgabewert (falls zutreffend):

    {? = CALL procname (?,?)}
    
  2. Rufen Sie SQLBindParameter für jeden Eingabe-, Eingabe/Ausgabe- und Ausgabeparameter sowie für den Prozedurrückgabewert (falls zutreffend) auf.

  3. Führen Sie die Anweisung mit SQLExecDirect aus.

HinweisHinweis

Wenn eine Anwendung eine Prozedur mit der Transact-SQL-EXECUTE-Syntax (statt mit der ODBC CALL-Escapesequenz) übermittelt, gibt der SQL Server-ODBC-Treiber den Prozeduraufruf an SQL Server als SQL-Anweisung statt als RPC weiter. Darüber hinaus werden Ausgabeparameter nicht zurückgegeben, wenn die Transact-SQL-EXECUTE-Anweisung verwendet wird.