如何:處理傳回碼和輸出參數 (ODBC)

SQL Server 預存程序可以有整數傳回碼和輸出參數。傳回碼和輸出參數會在來自伺服器的最後一個封包中傳送,因此要等到 SQLMoreResults 傳回 SQL_NO_DATA 之後才可供應用程式使用。如果從預存程序傳回錯誤,請呼叫 SQLMoreResults,前進到下一個結果,直到 SQL_NO_DATA 傳回為止。

如需示範如何處理傳回碼和輸出參數的範例,請參閱 ProcessReturnCodes.cpp (您可以從 MSDN 的<SQL Server 下載>頁面下載此項目)。這個範例是使用 Microsoft Visual C++ 2005 所開發的,而且是針對 ODBC 3.0 版或更新版本所開發的。

安全性注意事項安全性注意事項

儘可能使用 Windows 驗證。如果無法使用 Windows 驗證,請提示使用者在執行階段輸入認證。請避免將認證儲存在檔案中。如果您必須保存認證,則應該用 Win32 crypto API 加密這些認證。

若要處理傳回碼和輸出參數

  1. 建構使用 ODBC CALL 逸出序列的 SQL 陳述式。此陳述式應該會針對每個輸入、輸入/輸出和輸出參數,以及程序傳回值 (若有) 使用參數標記。

  2. 針對每個輸入、輸入/輸出和輸出參數,以及程序傳回值 (若有) 呼叫 SQLBindParameter

  3. 使用 SQLExecDirect 來執行此陳述式。

  4. 處理結果集,直到 SQLFetch 或 SQLFetchScroll 傳回 SQL_NO_DATA 為止,同時處理最後一個結果集,直到 SQLMoreResults 傳回 SQL_NO_DATA 為止。此時,繫結至傳回碼和輸出參數的變數會填入傳回的資料值。