Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
s’applique à : Windows | Windows Server
Colonnes de valeur longue
Les types de colonnes ESE JET_coltypLongText et JET_coltypLongBinary sont appelés types de colonnes de valeur longue. Ces colonnes sont des chaînes volumineuses et des objets binaires volumineux qui peuvent être stockés dans des arborescences B+ distinctes à l’écart de l’index principal. Lorsque les valeurs longues sont stockées séparément de l’enregistrement principal, elles sont en interne keyed sur un ID de valeur long (LID) et un décalage d’octet et accessibles en tant que flux. Les colonnes de valeur longue sont ajoutées à la table dans l’appel à JetAddColumn avec le membre coltyp de la structure JET_COLUMNDEF définie sur JET_coltypLongText ou JET_coltypLongBinary. La taille maximale d’une valeur de colonne texte long ou binaire long est de 2 Go à 1.
ESE prend en charge l’ajout, le remplacement de plage d’octets et la définition d’opérations de taille pour les colonnes de valeur longue afin de prendre en charge les implémentations de flux efficaces sur ces types de colonnes. Par défaut, les données de valeur longue sont stockées dans une arborescence B+ distincte si elle est supérieure à 1 024 octets, ou si l’enregistrement ne correspond pas à une seule page de base de données lorsque les données de valeur longues sont stockées dans l’enregistrement. L’application a la possibilité de remplacer le comportement par défaut en définissant des options pour stocker des données de valeur longue dans l’enregistrement (JET_bitSetIntrinsicLV) ou pour les forcer à être stockées dans l’arborescence B+ distincte (JET_bitSetSeparateLV). Ces valeurs sont définies dans le paramètre grbit dans JetSetColumn, ou le membre grbit JET_SETCOLUMN utilisé dans l’appel à JetSetColumns comme suit :
Ajout : (JET_bitSetAppendLV)
Remplacement de plage d’octets : (JET_bitSetOverwriteLV)
Taille définie : (JET_bitSetSizeLV)
Forcer la séparation : (JET_bitSetSeparateLV)
Stocker dans l’enregistrement : (JET_bitSetIntrinsicLV)
Les données de valeur longue sont définies en indiquant le décalage dans l’objet blob de valeurs longues et la longueur des données de valeur longues dans l’objet blob. Le décalage vers l’objet blob de valeurs longues est défini dans le membre ibLongValue de JET_SETINFO structure (pour JetSetColumn) ou le membre ibLongValue de la structure JET_SETCOLUMN (pour JetSetColumns). Le membre pvData de JET_SETCOLUMNet paramètre pvData dans l’appel à JetSetColumn contient les données de valeur longue. Les mises à jour des colonnes de valeur longue doivent être effectuées à l’intérieur d’une transaction.
Les données de valeur longue sont toujours stockées dans une table distincte lorsque l’application définit la JET_bitSetSeparateLV ou JET_bitSetIntrinsicLV, sinon elle est heuristiquement décidé. ESE stocke la valeur longue séparée si elle est supérieure à 1 024 octets ou si l’enregistrement ne tient pas sur une seule page de base de données si elle est stockée dans l’enregistrement.
Le diagramme suivant montre les données de valeur longue stockées dans une table distincte. Lorsqu’une valeur longue est stockée en dehors de l’enregistrement, un nouvel ID à valeur longue est créé pour faire référence à sa valeur. Cela permet à plusieurs enregistrements de faire référence à la même valeur de colonne. Les nombres de références aux données sont augmentés si plusieurs enregistrements dans les points de données vers les mêmes données de valeur longue.
ESE prend également en charge une fonctionnalité de magasin d’instances unique qui permet à plusieurs enregistrements de référencer le même objet binaire volumineux que si chaque enregistrement avait sa propre copie des informations ; évitez ainsi les copies en double des données de valeur de colonne. Cette fonctionnalité est activée dans l’appel à JetPrepareUpdate avec l’option JET_prepInsertCopy définie dans le paramètre de préparation .