書籤類型

ODBC 3.x 中的所有書簽都是可變長度書簽。 這可讓主鍵或與資料表相關聯的唯一索引做為書簽使用。 書簽也可以是 32 位的值,如同 ODBC 2.x中一樣。 若要指定書簽與資料指標搭配使用,ODBC 3.x 應用程式會將 SQL_ATTR_USE_BOOKMARK 語句屬性設定為 SQL_UB_VARIABLE。 系統會自動使用可變長度書簽。

應用程式可以呼叫 SQLColAttribute ,並將 FieldIdentifier 引數設定為 SQL_DESC_OCTET_LENGTH,以取得書簽的長度。 因為可變長度書簽可以是長值,所以應用程式不應該系結至資料行 0,除非它會針對資料列集中的許多資料列使用書簽。

固定長度書簽僅支援回溯相容性。 如果使用 ODBC 3.x 驅動程式的 ODBC 2.x 應用程式會呼叫 SQLSetStmtOption ,將SQL_USE_BOOKMARKS設定為 SQL_UB_ON,它會在驅動程式管理員中對應至 SQL_UB_VARIABLE。 即使只填入 32 位,也會使用可變長度書簽。 如果驅動程式支援固定長度書簽,則會支援可變長度書簽。 如果使用 ODBC 2.x 驅動程式的 ODBC 3.x 應用程式會呼叫 SQLSetStmtAttr ,將SQL_ATTR_USE_BOOKMARKS設定為 SQL_UB_VARIABLE,則會在驅動程式管理員中對應至 SQL_UB_ON,並使用 32 位固定長度書簽。 SQL_ATTR_FETCH_BOOKMARK_PTR 語句屬性接著必須指向 32 位書簽。 如果使用的書簽超過 32 位,例如當主鍵作為書簽使用時,資料指標必須將實際值對應至 32 位值。 例如,它可以建置它們的雜湊表。 當 ODBC 3.x 應用程式使用 ODBC 2.x 驅動程式系結書簽時,緩衝區長度必須為 4。