擷取結果 (進階)
呼叫 SQLBulkOperations、SQLFetch、SQLFetchScroll 或 SQLSetPos 時,應用程式可以指定將位移新增至繫結資料緩衝區位址與對應的長度/指示器緩衝區位址。 這些新增的結果會決定這些作業中使用的位址。
繫結位移可讓應用程式變更繫結,而不需針對先前繫結的資料行呼叫 SQLBindCol。 呼叫 SQLBindCol 以重新繫結資料會變更緩衝區位址與長度/指示器指標。 在另一方面,利用位移來重新繫結僅會將位移新增至現有的繫結資料緩衝區位址與長度/指示器緩衝區位址。 使用位移時,繫結是應用程式緩衝區配置方式的「範本」,應用程式可以透過變更位移,將此「範本」移動至不同的記憶體區域。 您可以隨時指定新位移,且一律會新增至原始繫結的值。
為指定繫結位移,應用程式會將 SQL_ATTR_ROW_BIND_OFFSET_PTR 陳述式屬性設定為 SQLINTEGER 緩衝區的位址。 在應用程式呼叫使用繫結的函式 (例如 SQLBulkOperations、SQLFetch、SQLFetchScroll 或 SQLSetPos) 之前,只要資料緩衝區位址或長度/指示器緩衝區位址都不是 0,而且只要繫結資料行位於結果集中,就會以位元組為單位,將位移放置在此緩衝區中。 位址與位移的總和必須是有效位址。 (這表示,只要位移總和是有效位址,則位移與要新增該位移的位址其中之一或兩者均可為無效)。SQL_ATTR_ROW_BIND_OFFSET_PTR 陳述式屬性是指標,因此位移值可以套用至一組以上的繫結資料。所有這些繫結資料都可以透過變更一個位移值來變更。 應用程式必須確定此指標在資料指標關閉之前保持有效。
注意
ODBC 2 不支援繫結位移。x 驅動程式。
此章節包含下列主題。