Share via


ブックマークの種類

ODBC 3.x のすべてのブックマークは可変長ブックマークです。 これにより、主キーまたはテーブルに関連付けられている一意のインデックスをブックマークとして使用できます。 また、ODBC 2.x で使用されていたように、ブックマークには 32 ビット値を指定することもできます。 カーソルでブックマークを使用するように指定するために、ODBC 3.x アプリケーションは、SQL_ATTR_USE_BOOKMARK ステートメント属性をSQL_UB_VARIABLEに設定します。 可変長ブックマークが自動的に使用されます。

アプリケーションは、FieldIdentifier 引数を SQL_DESC_OCTET_LENGTH に設定して SQLColAttribute を呼び出して、ブックマークの長さを取得できます。 可変長ブックマークは長い値になる可能性があるため、アプリケーションは、行セット内の多くの行にブックマークを使用しない限り、列 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 2.x ドライバーを使用する ODBC 3.x アプリケーションがブックマークをバインドする場合、バッファーの長さは 4 である必要があります。