共用方式為


準備與執行語句 (ODBC)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Platform System (PDW)

準備語句一次,然後執行多次

  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,將參數數據值和數據長度陣列系結至語句參數。

    • 如果參數是執行時的數據文字或影像參數,請加以設定。

    • 如果使用任何數據執行中參數,請加以設定。

  6. 針對備妥語句的每個執行:

    • 將 S 數據值和 S 數據長度放入系結的參數數位中。

    • 呼叫 SQLExecute 以執行備妥的語句。

    • 如果使用數據執行時輸入參數,SQLExecute 會傳回SQL_NEED_DATA。 使用 SQLParamData 和 SQLPutData 以區塊傳送數據。

準備具有數據列系結參數的語句

  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。 使用 SQLParamData 和 SQLPutData 以區塊傳送數據。

另請參閱

執行查詢操作說明主題 (ODBC)