JET_OPENTEMPORARYTABLE構造体
適用対象: Windows |Windows Server
JET_OPENTEMPORARYTABLE構造体
JET_OPENTEMPORARYTABLE構造体には、JET_OPENTEMPORARYTABLE関数のパラメーターの簡単に拡張可能なコレクションが含まれています。 この構造体は、 JET_TABLECREATE 構造体と同等の一時テーブルです。
Windows Vista:JET_OPENTEMPORARYTABLE構造は、Windows Vista で導入されています。
typedef struct tagJET_OPENTEMPORARYTABLE {
unsigned long cbStruct;
const JET_COLUMNDEF* prgcolumndef;
unsigned long ccolumn;
JET_UNICODEINDEX* pidxunicode;
JET_GRBIT grbit;
JET_COLUMNID* prgcolumnid;
unsigned long cbKeyMost;
unsigned long cbVarSegMac;
JET_TABLEID tableid;
} JET_OPENTEMPORARYTABLE;
メンバー
cbStruct
この構造体のサイズをバイト単位で指定します (将来の拡張用)。 sizeof( JET_TABLECREATE ) にバイト単位で設定する必要があります。
prgcolumndef
一時テーブルに作成された列の列定義。
一時テーブルで使用される列定義オプションには、重要な制限があります。 詳細については、次の「解説」を参照してください。
通常の列定義オプションに加えて、一時テーブルのコンテキストにのみ関連する次のオプションを 0 個以上指定することもできます。
値 |
説明 |
---|---|
JET_bitColumnTTDescending |
一時テーブルのキー列の並べ替え順序は、昇順ではなく降順にする必要があります。 JET_bitColumnTTKeyを指定せずにこのオプションを指定した場合、このオプションは無視されます。 |
JET_bitColumnTTKey |
列は一時テーブルのキー列になります。 入力配列でこのオプションを指定した列定義の順序によって、一時テーブルの各キー列の優先順位が決まります。 このオプションが設定されている配列内の最初の列定義は、最も重要なキー列になります。 データベース エンジンでサポートできるキー列よりも多くのキー列が要求された場合、サポートされていないキー列ではこのオプションは無視されます。 |
ccolumn
「prgcolumndef」を参照してください。
pidxunicode
一時テーブル内の Unicode キー列データを比較するために使用するロケール ID と正規化フラグ。
このパラメーターが存在せず、 lcid パラメーターが存在しない場合は、既定の LCID を使用して一時テーブル内の Unicode キー列を比較します。 既定の LCID は、米国英語ロケールです。
このパラメーターが存在しない場合、既定の正規化フラグを使用して、一時テーブル内のすべての Unicode キー列データが比較されます。 既定の正規化フラグは、NORM_IGNORECASE、NORM_IGNOREKANATYPE、NORM_IGNOREWIDTHです。
grbit
次のオプションの 0 個以上を指定するビットのグループ。
値 |
説明 |
---|---|
JET_bitTTIndexed |
このオプションは、 JetSeek を使用してインデックス キーでレコードを検索できるように、一時テーブルの柔軟性を要求します。 この機能が必要ない場合は、要求しないことをお勧めします。 この機能が要求されない場合、一時テーブル マネージャーは、パフォーマンスの向上につながる一時テーブルを管理するための戦略を選択できる可能性があります。 |
JET_bitTTUnique |
重複するインデックス キーを持つレコードを、一時テーブルの最後のレコード セットから削除する要求。 Windows Server 2003 より前のバージョンでは、すべてのクラスター化インデックスも主キーである必要があり、したがって一意である必要があるため、データベース エンジンでは常にこのオプションが有効であると想定しました。 Windows Server 2003 の時点で、JET_bitTTForwardOnly オプションも指定されている場合に重複を削除しない一時テーブルを作成できるようになりました。 一般に、どの重複が成功し、どの重複が破棄されるかを知ることはできません。 ただし、JET_bitTTErrorOnDuplicateInsertion オプションが要求されると、一時テーブルに挿入する特定のインデックス キーを持つ最初のレコードは常に成功します。 |
JET_bitTTUpdatable |
以前に挿入されたレコードを後で変更できるように、一時テーブルに十分な柔軟性を持たせるように要求します。 この機能が必要ない場合は、要求しないことをお勧めします。 この機能が要求されない場合、一時テーブル マネージャーは、パフォーマンスの向上につながる一時テーブルを管理するための戦略を選択できる可能性があります。 |
JET_bitTTScrollable |
JetMove を使用してレコードを任意の順序および方向でスキャンできるように、一時テーブルの柔軟性を確保するように要求します。 この機能が必要ない場合は、要求しないことをお勧めします。 この機能が要求されない場合、一時テーブル マネージャーは、パフォーマンスの向上につながる一時テーブルを管理するための戦略を選択できる可能性があります。 |
JET_bitTTSortNullsHigh |
NULL キー列の値が NULL 以外のキー列値よりもインデックスの末尾に近い位置に並べ替えられるよう要求します。 |
JET_bitTTForceMaterialization |
一時テーブル マネージャーは、パフォーマンスが向上する一時テーブルの管理を使用するための最適な戦略の検索を中止するように強制します。 |
JET_bitTTErrorOnDuplicateInsertion |
以前に挿入したレコードと同じインデックス キーを持つレコードを挿入しようとすると、JET_errKeyDuplicateですぐに失敗します。 このオプションが要求されていない場合は、要求された機能に基づいてデータベース エンジンが一時テーブルを実装するために選択した戦略に応じて、重複がすぐに検出され、失敗するか、後で自動的に削除されます。 この機能が必要ない場合は、要求しないことをお勧めします。 この機能が要求されない場合、一時テーブル マネージャーは、パフォーマンスの向上につながる一時テーブルを管理するための戦略を選択できる可能性があります。 |
JET_bitTTForwardOnly |
一時テーブルは、一時テーブル マネージャーが中間クエリ結果用に最適化された実装を使用できる場合にのみ作成されます。 一時テーブルの特性によってこの最適化の使用が妨げる場合、操作はJET_errCannotMaterializeForwardOnlySortで失敗します。 このオプションの副作用は、一時テーブルに重複するインデックス キーを持つレコードを含めることができるようにすることです。 詳細については、「JET_bitTTUnique」を参照してください。 Windows Server 2003: このオプションは、Windows Server 2003 以降のリリースでのみ使用できます。 |
prgcolumnid
一時テーブルの作成時に生成された列 ID の配列を受け取る出力バッファー。
この配列の列 ID は、列定義の入力配列に正確に対応します。 その結果、このバッファーのサイズは入力配列のサイズに対応している必要があります。
cbKeyMost
特定の行を表すキーの最大サイズ。
キーの切り捨て方法を制御するために、最大キー サイズを設定できます。 キーの切り捨ては重要です。これは、行が異なると見なされる場合に影響を与える可能性があるためです。
このパラメーターが 0 またはJET_cbKeyMostMin (255) に設定されている場合、最大キー サイズとそのセマンティクスは、Windows Server 2003 および以前のリリースでサポートされている最大キー サイズと同じままです。 このパラメーターは、インスタンス (JET_paramDatabasePageSize) のデータベース ページ サイズの関数として、より大きな値に設定することもできます。 詳細については、「JET_paramKeyMost」を参照してください。
cbVarSegMac
任意の可変長列から特定の行のキーを作成するために使用されるデータの最大量。
このパラメーターは、特定のキー列で使用されるキー領域の量を制御するために使用できます。 この制限はバイト単位です。 このパラメーターが 0 であるか、 cbKeyMost パラメーターと同じ場合、制限は有効になりません。
tableid
JetOpenTemporaryTable の呼び出しが成功した結果として作成された一時テーブルのテーブル ハンドル。
要件
要件 | 値 |
---|---|
Client |
Windows Vista が必要です。 |
[サーバー] |
Windows Server 2008 が必要です。 |
Header |
Esent.h で宣言されています。 |
参照
JET_TABLECREATE
JET_COLUMNDEF
JET_UNICODEINDEX
JET_GRBIT
JET_COLUMNID
JET_TABLEID
JetOpenTemporaryTable
拡張可能なストレージ エンジン のシステム パラメーター