Dela via


Utföra procedurer

ODBC definierar en standard escape-sekvens för att köra procedurer. Syntaxen för den här sekvensen och ett kodexempel som använder den finns i Proceduranrop.

För att köra en procedur utför ett program följande åtgärder:

  1. Anger värdena för alla parametrar. Mer information finns i Instruktionsparametrar senare i det här avsnittet.

  2. Anropar SQLExecDirect och skickar den en sträng som innehåller SQL-instruktionen som kör proceduren. Den här instruktionen kan använda escape-sekvensen som definieras av ODBC- eller DBMS-specifik syntax. instruktioner som använder DBMS-specifik syntax är inte kompatibla.

  3. När SQLExecDirect anropas, drivrutinen:

    • Hämtar de aktuella parametervärdena och konverterar dem efter behov. Mer information finns i Instruktionsparametrar senare i det här avsnittet.

    • Anropar proceduren i datakällan och skickar de konverterade parametervärdena. Hur drivrutinen anropar proceduren är drivrutinsspecifikt. Den kan till exempel ändra SQL-instruktionen så att den använder datakällans SQL-grammatik och skickar den här instruktionen för körning, eller så kan den anropa proceduren direkt med hjälp av en RPC-mekanism (Remote Procedure Call) som definieras i dataströmprotokollet för DBMS.

    • Returnerar värdena för indata/utdata eller utdataparametrar eller procedurens returvärde, förutsatt att proceduren lyckas. Dessa värden kanske inte är tillgängliga förrän alla andra resultat (radantal och resultatuppsättningar) som genererats av proceduren har bearbetats. Om proceduren misslyckas returnerar drivrutinen eventuella fel.