Partager via


JET_OPENTEMPORARYTABLE Structure

S’applique à : Windows | Windows Server

JET_OPENTEMPORARYTABLE Structure

La structure JET_OPENTEMPORARYTABLE contient une collection de paramètres facilement extensible pour la fonction JET_OPENTEMPORARYTABLE . Cette structure est l’équivalent de table temporaire de la structure JET_TABLECREATE .

Windows Vista : La structure JET_OPENTEMPORARYTABLE est introduite dans 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;

Membres

cbStruct

Taille de cette structure en octets (pour une extension ultérieure). Elle doit être définie sur sizeof( JET_TABLECREATE ) en octets.

prgcolumndef

Définitions de colonnes pour les colonnes créées dans la table temporaire.

Il existe des limitations importantes pour les options de définition de colonne utilisées avec une table temporaire. Pour plus d'informations, consultez la section Notes.

En plus des options de définition de colonne habituelles, zéro ou plusieurs des options suivantes peuvent également être spécifiées qui ne sont pertinentes que dans le contexte d’une table temporaire.

Valeur

Signification

JET_bitColumnTTDescending

L’ordre de tri de la colonne clé de la table temporaire doit être décroissant plutôt que croissant. Si cette option est spécifiée sans JET_bitColumnTTKey cette option est ignorée.

JET_bitColumnTTKey

La colonne sera une colonne clé pour la table temporaire.

L’ordre des définitions de colonne avec cette option spécifiée dans le tableau d’entrée détermine la priorité de chaque colonne clé pour la table temporaire. La première définition de colonne dans le tableau qui a ce jeu d’options sera la colonne clé la plus significative, et ainsi de suite. Si plus de colonnes clés sont demandées que le moteur de base de données ne peut le prendre en charge, cette option est ignorée pour les colonnes clés non prises en charge.

ccolumn

Consultez prgcolumndef.

pidxunicode

ID de paramètres régionaux et indicateurs de normalisation à utiliser pour comparer les données de colonne clé Unicode dans la table temporaire.

Lorsque ce paramètre n’est pas présent et que le paramètre lcid n’est pas présent, le LCID par défaut est utilisé pour comparer les colonnes clés Unicode de la table temporaire. Le LCID par défaut est les paramètres régionaux anglais des États-Unis.

Lorsque ce paramètre n’est pas présent, les indicateurs de normalisation par défaut sont utilisés pour comparer les données de colonne clé Unicode dans la table temporaire. Les indicateurs de normalisation par défaut sont : NORM_IGNORECASE, NORM_IGNOREKANATYPE et NORM_IGNOREWIDTH.

grbit

Groupe de bits spécifiant zéro ou plusieurs des options suivantes.

Valeur

Signification

JET_bitTTIndexed

Cette option demande que la table temporaire soit suffisamment flexible pour permettre l’utilisation de JetSeek pour rechercher des enregistrements par clé d’index.

Si cette fonctionnalité n’est pas requise, il est préférable de ne pas la demander. Si cette fonctionnalité n’est pas demandée, le gestionnaire de tables temporaire peut être en mesure de choisir une stratégie de gestion de la table temporaire qui se traduira par une amélioration des performances.

JET_bitTTUnique

Demande que les enregistrements avec des clés d’index en double soient supprimés du jeu d’enregistrements final de la table temporaire.

Avant Windows Server 2003, le moteur de base de données supposait toujours que cette option était en vigueur, car tous les index cluster devaient également être une clé primaire et, par conséquent, être uniques. Depuis Windows Server 2003, il est désormais possible de créer une table temporaire qui ne supprime pas les doublons lorsque l’option JET_bitTTForwardOnly est également spécifiée.

Il n’est pas possible de savoir quel doublon réussira et quels doublons seront ignorés, en général. Toutefois, lorsque l’option JET_bitTTErrorOnDuplicateInsertion est demandée, le premier enregistrement avec une clé d’index donnée à insérer dans la table temporaire réussit toujours.

JET_bitTTUpdatable

Demande que la table temporaire soit suffisamment flexible pour permettre aux enregistrements précédemment insérés d’être modifiés par la suite. Si cette fonctionnalité n’est pas requise, il est préférable de ne pas la demander.

Si cette fonctionnalité n’est pas demandée, le gestionnaire de tables temporaire peut être en mesure de choisir une stratégie de gestion de la table temporaire qui se traduira par une amélioration des performances.

JET_bitTTScrollable

Demande que la table temporaire soit suffisamment flexible pour permettre l’analyse des enregistrements dans un ordre et une direction arbitraires à l’aide de JetMove.

Si cette fonctionnalité n’est pas requise, il est préférable de ne pas la demander. Si cette fonctionnalité n’est pas demandée, le gestionnaire de tables temporaire peut être en mesure de choisir une stratégie de gestion de la table temporaire qui se traduira par une amélioration des performances.

JET_bitTTSortNullsHigh

Demande que les valeurs de colonne clé NULL trient plus près de la fin de l’index que les valeurs de colonne de clé non NULL.

JET_bitTTForceMaterialization

Force le gestionnaire de tables temporaires à abandonner la recherche de la meilleure stratégie pour utiliser la gestion de la table temporaire qui entraînera une amélioration des performances.

JET_bitTTErrorOnDuplicateInsertion

Toute tentative d’insertion d’un enregistrement avec la même clé d’index qu’un enregistrement précédemment inséré échouera immédiatement avec JET_errKeyDuplicate. Si cette option n’est pas demandée, un doublon est détecté immédiatement et échoue, ou est supprimé en mode silencieux ultérieurement, en fonction de la stratégie choisie par le moteur de base de données pour implémenter la table temporaire, en fonction des fonctionnalités demandées.

Si cette fonctionnalité n’est pas requise, il est préférable de ne pas la demander. Si cette fonctionnalité n’est pas demandée, le gestionnaire de tables temporaire peut être en mesure de choisir une stratégie de gestion de la table temporaire qui se traduira par une amélioration des performances.

JET_bitTTForwardOnly

La table temporaire est créée uniquement si le gestionnaire de tables temporaire peut utiliser l’implémentation optimisée pour les résultats de requête intermédiaires. Si une caractéristique de la table temporaire empêche l’utilisation de cette optimisation, l’opération échoue avec JET_errCannotMaterializeForwardOnlySort.

Un effet secondaire de cette option est d’autoriser la table temporaire à contenir des enregistrements avec des clés d’index en double. Pour plus d’informations, consultez JET_bitTTUnique.

Windows Server 2003 : Cette option est disponible uniquement sur Windows Server 2003 et versions ultérieures.

prgcolumnid

Mémoire tampon de sortie qui reçoit le tableau des ID de colonne générés lors de la création de la table temporaire.

Les ID de colonne dans ce tableau correspondent exactement au tableau d’entrée des définitions de colonne. Par conséquent, la taille de cette mémoire tampon doit correspondre à la taille du tableau d’entrée.

cbKeyMost

Taille maximale d’une clé représentant une ligne donnée.

La taille maximale de clé peut être définie pour contrôler la façon dont les clés sont tronquées. La troncation de clé est importante, car elle peut affecter le moment où les lignes sont considérées comme distinctes.

Si ce paramètre est défini sur 0 ou JET_cbKeyMostMin (255), la taille de clé maximale et sa sémantique restent identiques à la taille de clé maximale prise en charge par Windows Server 2003 et les versions précédentes. Ce paramètre peut également être défini sur une valeur plus grande en fonction de la taille de la page de base de données pour le instance (JET_paramDatabasePageSize). Pour plus d’informations, consultez JET_paramKeyMost.

cbVarSegMac

Quantité maximale de données qui sera utilisée à partir d’une colonne de longueur variable pour construire une clé pour une ligne donnée.

Ce paramètre peut être utilisé pour contrôler la quantité d’espace de clé consommée par une colonne de clé donnée. Cette limite est en octets. Si ce paramètre est égal à zéro ou est identique au paramètre cbKeyMost , aucune limite n’est appliquée.

tableid

Handle de table pour la table temporaire créée à la suite d’un appel réussi à JetOpenTemporaryTable.

Spécifications

Condition requise Valeur

Client

Nécessite Windows Vista.

Serveur

Nécessite Windows Server 2008.

En-tête

Déclaré dans Esent.h.

Voir aussi

JET_TABLECREATE
JET_COLUMNDEF
JET_UNICODEINDEX
JET_GRBIT
JET_COLUMNID
JET_TABLEID
JetOpenTemporaryTable
Paramètres système du moteur de stockage extensible