共用方式為


如何:準備和執行陳述式 (ODBC)

準備一次陳述式,然後執行多次

  1. 呼叫 SQLPrepare,以便準備陳述式。

  2. (選擇性) 呼叫 SQLNumParams,以便決定準備陳述式中的參數數目。

  3. (選擇性) 針對準備陳述式中的每個參數:

  4. 針對準備陳述式的每個執行:

    • 如果陳述式具有參數標記,請將資料值放在繫結參數緩衝區中。

    • 呼叫 SQLExecute,以便執行準備陳述式。

    • 如果使用了資料執行中輸入參數,SQLExecute 就會傳回 SQL_NEED_DATA。請使用 SQLParamDataSQLPutData 來按照區塊傳送資料。

準備含有資料行取向參數繫結的陳述式

  1. 呼叫 SQLSetStmtAttr 來設定下列屬性:

    • 將 SQL_ATTR_PARAMSET_SIZE 設定為參數集 (S) 的數目。

    • 將 SQL_ATTR_PARAM_BIND_TYPE 設定為 SQL_PARAMETER_BIND_BY_COLUMN。

    • 將 SQL_ATTR_PARAMS_PROCESSED_PTR 屬性設定為指向 SQLUINTEGER 變數,以保存已處理的參數數目。

    • 將 SQL_ATTR_PARAMS_STATUS_PTR 設定為指向 SQLUSSMALLINT 變數的陣列[S],以保存參數狀態指標。

  2. 呼叫 SQLPrepare,以便準備陳述式。

  3. (選擇性) 呼叫 SQLNumParams,以便決定準備陳述式中的參數數目。

  4. (選擇性) 針對準備陳述式中的每個參數,呼叫 SQLDescribeParam,以便取得參數資訊。

  5. 針對每個參數標記:

    • 配置 S 個參數緩衝區的陣列來儲存資料值。

    • 配置 S 個參數緩衝區的陣列來儲存資料長度。

    • 呼叫 SQLBindParameter,以便將參數資料値和資料長度陣列繫結至陳述式參數。

    • 如果參數是資料執行中的 text 或 image 參數,請設定此參數。

    • 如果使用了任何資料執行中參數,請設定這些參數。

  6. 針對準備陳述式的每個執行:

    • 將 S 資料值和 S 資料長度放在繫結參數陣列中。

    • 呼叫 SQLExecute,以便執行準備陳述式。

    • 如果使用了資料執行中輸入參數,SQLExecute 就會傳回 SQL_NEED_DATA。請使用 SQLParamDataSQLPutData 來按照區塊傳送資料。

準備含有資料列取向繫結參數的陳述式

  1. 配置結構的陣列[S],其中 S 是參數集的數目。結構中每個參數都具有一個元素,而每個元素則具有兩部分:

    • 第一個部分是適當資料類型的變數,可保存參數資料。

    • 第二個部分是 SQLINTEGER 變數,可保存狀態指標。

  2. 呼叫 SQLSetStmtAttr 來設定下列屬性:

    • 將 SQL_ATTR_PARAMSET_SIZE 設定為參數集 (S) 的數目。

    • 將 SQL_ATTR_PARAM_BIND_TYPE 設定為步驟 1 中配置的結構大小。

    • 將 SQL_ATTR_PARAMS_PROCESSED_PTR 屬性設定為指向 SQLUINTEGER 變數,以保存已處理的參數數目。

    • 將 SQL_ATTR_PARAMS_STATUS_PTR 設定為指向 SQLUSSMALLINT 變數的陣列[S],以保存參數狀態指標。

  3. 呼叫 SQLPrepare,以便準備陳述式。

  4. 針對每個參數標記呼叫 SQLBindParameter,以便將參數資料値和資料長度指標,指向它們在步驟 1 所配置之結構陣列第一個元素中的變數。如果參數是資料執行中參數,請設定此參數。

  5. 針對準備陳述式的每個執行:

    • 將資料值填入繫結參數緩衝區陣列。

    • 呼叫 SQLExecute,以便執行準備陳述式。驅動程式會有效率地執行 SQL 陳述式 S 次,針對每個參數集執行一次。

    • 如果使用了資料執行中輸入參數,SQLExecute 就會傳回 SQL_NEED_DATA。請使用 SQLParamDataSQLPutData 來按照區塊傳送資料。

請參閱

其他資源