繫結結果集資料行
應用程式可以選擇繫結隨意數目的結果集資料行,包括不繫結任何資料行。 擷取資料列後,驅動程式會傳回繫結資料行的資料至應用程式。 應用程式是否繫結結果集中所有的資料行,取決於應用程式。 例如,產生報告的應用程式通常使用固定格式;這類應用程式會建立結果集,並包括報告中使用的所有資料行,然後繫結並擷取所有資料行的資料。 顯示完整資料畫面的應用程式有時允許使用者決定顯示的資料行;這類應用程式會建立結果集,並包括使用者可能需要的所有資料行,但只繫結並擷取使用者所選的資料行資料。
您可以呼叫 SQLGetData,從未繫結的資料行擷取資料。 這通常稱為擷取長資料,而長資料常超過單一緩衝區的長度,所以必須在組件中擷取。
您可以隨時、甚至是擷取資料列之後,繫結資料行。 但在下次擷取資料列前,新繫結不會生效,也不套用至之前擷取資料列的資料。
變數與資料行會保持繫結,直到資料行與不同的變數繫結、直到使用 null 指標作為變數位址,呼叫 SQLBindCol 解除資料行繫結、直到使用 SQL_UNBIND 選項,呼叫 SQLFreeStmt 解除所有資料行繫結,或者發行陳述式為止。 因此,應用程式必須確定繫結期間,所有繫結變數均保持有效。 如需詳細資訊,請參閱配置並釋放緩衝區。
資料行繫結只是陳述式結構關聯的資訊,所以可以設為任何順序。 而且,資料行繫結與結果集無關。 例如,假設應用程式繫結下列 SQL 陳述式產生的結果集資料行:
SELECT * FROM Orders
如果應用程式接著在相同的陳述式控制代碼上
SELECT * FROM Lines
執行 SQL 陳述式,第一個結果集的資料行繫結仍然有效,因為這些繫結儲存在陳述式結構中。 在大部分情況下,這種程式設計做法不佳,最好避免。 反之,應用程式最好使用 SQL_UNBIND 選項呼叫 SQLFreeStmt,解除所有舊資料行繫結,然後繫結新的資料行。