调用存储过程(ODBC)

当 SQL 语句使用 ODBC CALL 转义子句调用存储过程时,Microsoft SQL Server 驱动程序使用远程存储过程调用 (RPC) 机制将过程发送到 SQL Server。 RPC 请求绕过 SQL Server 中的大部分语句分析和参数处理,并且比使用 Transact-SQL EXECUTE 语句更快。

有关演示此功能的示例应用程序,请参阅进程返回代码和输出参数 (ODBC)。

将过程作为 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 语句,则不会返回输出参数。

另请参阅

运行存储过程作指南主题 (ODBC)
批处理存储过程调用
运行存储过程
调用存储过程
过程