SQLNumParams 函式

一致性
引進版本:ODBC 1.0 標準合規性:ISO 92

摘要
SQLNumParams 會傳回 SQL 語句中的參數數目。

語法

  
SQLRETURN SQLNumParams(  
     SQLHSTMT        StatementHandle,  
     SQLSMALLINT *   ParameterCountPtr);  

引數

StatementHandle
[輸入]語句控制碼。

ParameterCountPtr
[輸出]要在其中傳回 語句中參數數目的緩衝區指標。

傳回

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_STILL_EXECUTING、SQL_ERROR或SQL_INVALID_HANDLE。

診斷

SQLNumParams 傳回SQL_ERROR或SQL_SUCCESS_WITH_INFO時,呼叫具有 SQL_HANDLE_STMT HandleType 和 StatementHandle Handle HandleType 呼叫 SQLGetDiagRec ,即可取得 相關聯的 SQLSTATE 值。 下表列出 SQLNumParams 通常傳 回的 SQLSTATE 值,並說明此函式內容中的每個值;標記法 「(DM)」 在驅動程式管理員傳回的 SQLSTATE 描述之前。 除非另有說明,否則與每個 SQLSTATE 值相關聯的傳回碼會SQL_ERROR。

SQLSTATE 錯誤 描述
01000 一般警告 驅動程式特定的資訊訊息。 (函式會傳回SQL_SUCCESS_WITH_INFO。)
08S01 通訊連結失敗 驅動程式與驅動程式連線的資料來源之間的通訊連結在函式完成處理之前失敗。
HY000 一般錯誤 發生錯誤,其中沒有特定的 SQLSTATE,也沒有定義任何實作特定的 SQLSTATE。 *MessageText 緩衝區中 SQLGetDiagRec 回的錯誤訊息描述錯誤及其原因。
HY001 記憶體配置錯誤 驅動程式無法配置支援執行或完成函式所需的記憶體。
HY008 作業已取消 已針對 StatementHandle 啟用非同步處理。 已呼叫 SQLNumParams 函式,並在完成執行之前, 在 StatementHandle 上 呼叫 SQLCancel SQLCancelHandle ; SQLNumParams 函式接著會在 StatementHandle 再次呼叫。

或者, 呼叫 SQLNumParams 函式,並在完成執行之前, 從多執行緒應用程式中的不同執行緒呼叫 SQLCancel SQLCancelHandle
HY010 函式順序錯誤 (DM) 在呼叫 StatementHandle SQLPrepare SQLExecDirect 之前呼叫函式。

(DM) 已針對與 StatementHandle 相關聯的連接控制碼呼叫非同步執行函式。 呼叫 SQLNumParams 函式時 ,這個非同步函式仍在執行中。

(DM) 呼叫 StatementHandle 的非同步執行函式(而非此函式),並在呼叫此函式時仍在執行中。

(DM) 已針對 StatementHandle 呼叫 SQLExecute SQLExecDirect SQLBulkOperations SQLSetPos ,並傳回SQL_NEED_DATA。 在針對所有資料執行中參數或資料行傳送資料之前,會呼叫此函式。
HY013 記憶體管理錯誤 無法處理函式呼叫,因為基礎記憶體物件無法存取,可能是因為記憶體不足的情況。
HY117 連線因為未知的交易狀態而暫停。 只允許中斷連線和唯讀函式。 (DM) 如需暫停狀態的詳細資訊,請參閱 SQLEndTran 函式
HYT01 已超過連線逾時 在資料來源回應要求之前,連線逾時期限已過期。 連線逾時期間是透過 SQLSetConnectAttr 來設定,SQL_ATTR_CONNECTION_TIMEOUT。
IM001 驅動程式不支援此函式 (DM) 與 StatementHandle 相關聯的驅動程式不支援 函式。
IM017 在非同步通知模式中停用輪詢 每當使用通知模型時,輪詢就會停用。
IM018 尚未呼叫 SQLCompleteAsync ,以完成此控制碼上的先前非同步作業。 如果控制碼上的上一個函式呼叫傳回SQL_STILL_EXECUTING且啟用通知模式, 則必須在控制碼上呼叫 SQLCompleteAsync ,才能執行後續處理並完成作業。

註解

只有在呼叫 SQLPrepare 之後 ,才能呼叫 SQLNumParams

如果與 StatementHandle 相關聯的語句不包含參數, SQLNumParams 會將 * ParameterCountPtr 設定為 0。

SQLNumParams 回的參數數目與 IPD SQL_DESC_COUNT 欄位的值相同。

如需詳細資訊,請參閱 描述參數

如需下列資訊 請參閱
將緩衝區系結至參數 SQLBindParameter 函式
傳回 語句中參數的相關資訊 SQLDescribeParam 函式

另請參閱

ODBC API 參考
ODBC 標頭檔