如何处理返回代码和输出参数 (ODBC)

SQL Server 存储过程可以有整数返回代码和输出参数。返回代码和输出参数在服务器的最后一个数据包中发送,直到 SQLMoreResults 返回 SQL_NO_DATA,它们才可用于应用程序。如果存储过程返回错误,调用 SQLMoreResults 可以前进到下一个结果,直到返回 SQL_NO_DATA。

有关显示如何处理返回代码和输出参数的示例,请参阅 ProcessReturnCodes.cpp,可以从 MSDN 上的 SQL Server Downloads(SQL Server 下载)页下载该文件。此示例是使用 Microsoft Visual C++ 2005 开发的,并且是针对 ODBC 版本 3.0 或更高版本开发的。

安全说明安全说明

请尽可能使用 Windows 身份验证。如果 Windows 身份验证不可用,请在运行时提示用户输入其凭据。不要将凭据存储在一个文件中。如果必须保存凭据,则应当用 Win32 crypto API(Win32 加密 API)进行加密。

处理返回代码和输出参数

  1. 构造使用 ODBC CALL 转义序列的 SQL 语句。该语句应当对每个输入、输入/输出和输出参数以及过程返回值(如果有)使用参数标记。

  2. 对每个输入、输入/输出、输出参数以及过程返回值(如果有)调用 SQLBindParameter

  3. 用 SQLExecDirect 执行语句。

  4. 直到 SQLFetch 或 SQLFetchScroll 在处理最后一个结果集时返回 SQL_NO_DATA 或直到 SQLMoreResults 返回 SQL_NO_DATA,才处理结果集。这时,将以返回的数据值填充绑定到返回代码和输出参数的变量。