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 2.x 應用程式使用 ODBC 3.x 驅動程式呼叫 SQLSetStmtOption 將 SQL_USE_BOOKMARKS 設定為 SQL_UB_ON,則在驅動程式管理員中會映射為 SQL_UB_VARIABLE。 即使書籤中只有 32 位元被填充,仍然會使用可變長度的書籤。 如果驅動程式支援固定長度書籤,則會支援可變長度書籤。 若 ODBC 3.x 應用程式使用 ODBC 2.x 驅動程式呼叫 SQLSetStmtAttr 將 SQL_ATTR_USE_BOOKMARKS 設定為 SQL_UB_VARIABLE,則在驅動程式管理器中將其映射為 SQL_UB_ON,並使用一個 32 位元固定長度的書籤。 SQL_ATTR_FETCH_BOOKMARK_PTR 陳述句屬性必須指向一個 32 位元書籤。 若所用書籤長度超過 32 位元,例如主鍵作為書籤時,游標必須將實際值映射到 32 位元值。 例如,它可以建立一個包含這些元素的雜湊表。 當使用 ODBC 2.x 驅動程式的 ODBC 3.x 應用程式綁定書籤時,緩衝區長度必須為 4。