應用程式可以綁定結果集中任意多欄或少欄,甚至完全不綁定欄位。 當擷取資料列時,驅動程式會將綁定欄位的資料回傳給應用程式。 應用程式是否綁定結果集中的所有欄位,取決於應用程式本身。 例如,產生報告的應用程式通常有固定格式;這類應用程式會建立包含報告中所有欄位的結果集,然後綁定並檢索所有欄位的資料。 顯示滿載資料螢幕的應用程式有時允許使用者決定要顯示哪些欄位;這類應用程式會建立包含使用者可能想要的所有欄位的結果集,但僅綁定並檢索使用者選擇的欄位資料。
可透過呼叫 SQLGetData 從未綁定欄位取得資料。 這通常用來檢索長資料,因為資料常超過單一緩衝區的長度,必須分段檢索。
欄位可以隨時綁定,即使已經取得資料列。 然而,新的綁定要等到下一次抓取某一列時才會生效;這些資料不會套用到已取得的資料列。
變數會一直綁定在某欄位,直到有其他變數綁定到該欄位,或透過呼叫 SQLBindCol 並以空指標作為變數位址而解除綁定該欄位,直到所有欄位都解除綁定,直到以 SQL_UNBIND 選項呼叫 SQLFreeStmt ,或直到該敘述被釋放。 因此,應用程式必須確保所有綁定的變數在綁定期間保持有效。 更多資訊請參見「 分配與釋放緩衝區」。
由於欄位綁定只是與語句結構相關的資訊,因此它們可以以任意順序設定。 它們也與結果集合保持獨立。 例如,假設一個應用程式綁定由以下 SQL 陳述式產生的結果集欄位:
SELECT * FROM Orders
如果應用程式然後執行 SQL 語句
SELECT * FROM Lines
在同一語句柄上,第一個結果集的欄位綁定仍然有效,因為這些綁定是儲存在語句結構中的。 在大多數情況下,這是不良的程式設計方式,應該避免。 應用程式應該呼叫 SQLFreeStmt,使用 SQL_UNBIND 選項來解除綁定所有的舊欄位,然後再綁定新的欄位。