Fonction JetAttachDatabase2

S’applique à : Windows | serveur Windows

Fonction JetAttachDatabase2

La fonction JetAttachDatabase2 attache un fichier de base de données à utiliser avec une instance de base de données et spécifie une taille maximale pour cette base de données. Pour utiliser la base de données, elle doit être ouverte ultérieurement avec JetOpenDatabase.

    JET_ERR JET_API JetAttachDatabase2(
      __in          JET_SESID sesid,
      __in          const tchar* szFilename,
      __in          const unsigned long cpgDatabaseSizeMax,
      __in          JET_GRBIT grbit
    );

Paramètres

sesid

Contexte de session de base de données qui sera utilisé pour l’appel d’API.

szFilename

Nom de la base de données à attacher.

cpgDatabaseSizeMax

Taille maximale, dans les pages de base de données, pour la base de données. La taille de page de base de données par défaut est de 4 kilo-octets, ce qui peut être modifié à l’aide de la fonction JetSetSystemParameter avant de créer une base de données.

Le passage de zéro signifie qu’il n’y a pas de maximum appliqué par le moteur de base de données.

grbit

Groupe de bits qui contiennent les options à utiliser pour cet appel, qui incluent zéro ou plusieurs des éléments suivants :

Valeur

Signification

JET_bitDbDeleteCorruptIndexes

Si JET_paramEnableIndexChecking a été défini, tous les index sur les données Unicode sont supprimés. Pour plus d’informations, consultez la section Notes.

JET_bitDbDeleteUnicodeIndexes

Tous les index sur les données Unicode sont supprimés, quel que soit le paramètre de JET_paramEnableIndexChecking. Pour plus d’informations, consultez la section Notes.

JET_bitDbReadOnly

Empêche les modifications apportées à la base de données.

JET_bitDbUpgrade

Réservé pour un usage futur.

Valeur de retour

La fonction retourne l’un des codes d’erreur JET_ERR . Voici les éléments les plus couramment retournés. (Pour obtenir la liste complète des erreurs pour cette API, consultez Codes d’erreur du moteur extensibles Stockage.)

Code de retour

Description

JET_errSuccess

L’opération s’est terminée avec succès.

JET_errBackupInProgress

L’attachement d’une base de données n’est pas autorisé pendant une sauvegarde.

JET_errDatabaseFileReadOnly

Le fichier de base de données spécifié par szFilename doit être accessible en écriture. L’attribut Read-Only ne doit pas être défini et le processus en cours d’exécution doit disposer de privilèges suffisants pour écrire dans le fichier.

JET_errDatabaseInUse

Le fichier de base de données est déjà ouvert par un autre processus.

JET_errDatabaseInvalidPath

Un chemin d’accès non valide a été donné dans szFilename. szFilename doit être non NULL et faire référence à un chemin d’accès valide.

JET_errDatabaseSharingViolation

Le fichier de base de données a déjà été attaché par une autre session.

JET_errFileNotFound

Le fichier donné dans szFilename n’existe pas.

JET_errPrimaryIndexCorrupted

Il existe une erreur avec l’index principal. Cela peut provenir d’une altération physique (par exemple, une altération du disque ou de la mémoire). Il peut également être retourné lors de l’attachement d’une base de données modifiée pour la dernière fois sur un système d’exploitation plus ancien et que l’index principal se trouve sur une colonne avec des données Unicode. Pour plus d’informations sur les index sur les données Unicode, consultez les remarques.

JET_errSecondaryIndexCorrupted

Il existe une erreur avec un index secondaire. Cela peut provenir d’une altération physique (par exemple, une altération du disque ou de la mémoire). Il peut également être retourné lors de l’attachement d’une base de données modifiée pour la dernière fois sur un système d’exploitation plus ancien et qu’un index secondaire se trouve sur une colonne avec des données Unicode. Pour plus d’informations sur les index sur les données Unicode, consultez les remarques. Les index secondaires sont complètement reconstruits lorsqu’une base de données est défragmentée avec un utilitaire hors connexion à l’aide de la commande suivante : esentutl -d.

JET_errTooManyAttachedDatabases

Seul un nombre fini de bases de données peut être attaché par instance. La limite est actuellement de sept bases de données par instance.

JET_wrnDatabaseAttached

Avertissement non fatal indiquant que le fichier de base de données a déjà été attaché par cette session.

Remarques

Le fichier de base de données est détaché à l’aide de JetDetachDatabase ou JetDetachDatabase2.

Pour plus d’informations, consultez JetAttachDatabase .

Spécifications

Condition requise Valeur

Client

Nécessite Windows Vista, Windows XP ou Windows 2000 Professional.

Serveur

Nécessite Windows Server 2008, Windows Server 2003 ou Windows 2000 Server.

En-tête

Déclaré dans Esent.h.

Bibliothèque

Utilisez ESENT.lib.

DLL

Nécessite ESENT.dll.

Unicode

Implémenté en tant que JetAttachDatabase2W (Unicode) et JetAttachDatabase2A (ANSI).

Voir aussi

Fichiers de moteur de Stockage extensibles
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetAttachDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter