Partager via


Procédure : appeler des procédures stockées (ODBC)

Lorsqu'une instruction SQL appelle une procédure stockée à l'aide de la clause d'échappement ODBC CALL, le pilote SQL Server envoie la procédure à SQL Server à l'aide du mécanisme d'appel de procédure stockée distante (RPC). Les demandes RPC, qui contournent une grande partie de l'analyse des instructions et du traitement des paramètres dans SQL Server, sont plus rapides que l'instruction Transact-SQL EXECUTE.

Pour un exemple d'application qui illustre cette fonctionnalité, consultez l'exemple pour le traitement des codes de retour et des paramètres de sortie, disponible sur CodePlex ; consultez Exemples pour le moteur de base de données SQL Server pour plus d'informations.

Pour exécuter une procédure en tant qu'appel RPC

  1. Construisez une instruction SQL qui utilise la séquence d'échappement ODBC CALL. L'instruction utilise des marqueurs de paramètre pour chaque entrée, entrée/sortie et paramètre de sortie, et pour la valeur de retour de la procédure (le cas échéant) :

    {? = CALL procname (?,?)}
    
  2. Appelez SQLBindParameter pour chaque entrée, entrée/sortie et paramètre de sortie, et pour la valeur de retour de la procédure (le cas échéant).

  3. Exécutez l'instruction avec SQLExecDirect.

Notes

Si une application soumet une procédure à l'aide de la syntaxe Transact-SQL EXECUTE (par opposition à la séquence d'échappement ODBC CALL), le pilote ODBC de SQL Server passe l'appel de procédure à SQL Server en tant qu'instruction SQL et non en tant qu'appel RPC. Par ailleurs, les paramètres de sortie ne sont pas retournés si l'instruction Transact-SQL EXECUTE est utilisée.