Fonction JetCreateDatabase

S’applique à : Windows | Windows Server

Fonction JetCreateDatabase

La fonction JetCreateDatabase crée et joint un fichier de base de données à utiliser avec le moteur de base de données ESE. L’appel de JetCreateDatabase2 avec cpgDatabaseSizeMax défini sur zéro est identique à l’appel de JetCreateDatabase avec szConnect défini sur NULL. Actuellement, jusqu’à sept bases de données peuvent être créées par instance.

    JET_ERR JET_API JetCreateDatabase(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szFilename,
      __in_opt      JET_PCSTR szConnect,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

Paramètres

sesid

Contexte de session de base de données à utiliser pour l’appel d’API.

szFilename

Nom de la base de données à modifier.

szConnect

Réservé pour un usage futur. valeur de l’en-tête définie sur Null.

pdbid

Pointeur vers une mémoire tampon qui, lors d’un appel réussi, contient l’identificateur de la base de données. En cas d’échec, la valeur n’est pas définie.

grbit

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

Valeur

Signification

JET_bitDbOverwriteExisting

Par défaut, si JetCreateDatabase est appelé et que la base de données existe déjà, l’appel d’API échoue et la base de données d’origine n’est pas remplacée. JET_bitDbOverwriteExisting modifie ce comportement, et l’ancienne base de données sera remplacée par une nouvelle. Windows XP et versions ultérieures.

JET_bitDbRecoveryOff

JET_bitDbRecoveryOff désactive la journalisation. La définition de ce bit perd la possibilité de relire les fichiers journaux et de récupérer la base de données à un état utilisable cohérent après un événement catastrophique.

JET_bitDbShadowingOff

La définition JET_bitDbShadowingOff désactive la duplication de certaines structures de base de données internes (ombrage). La duplication de ces structures étant effectuée pour la résilience, la définition de JET_bitDbShadowingOff supprimera cette résilience.

Valeur renvoyée

Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour suivants. Pour plus d’informations sur les erreurs ESE possibles, consultez Erreurs du moteur de stockage extensible et Paramètres de gestion des erreurs.

Code de retour

Description

JET_errSuccess

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

JET_errDatabaseDuplicate

La base de données nommée dans szFilename existe déjà. Lorsque cette erreur est retournée, la base de données n’est pas attachée.

JET_errDatabaseInUse

Peut être retourné si l’accès exclusif a été demandé, mais n’a pas pu être accordé, ou si une autre session a déjà ouvert la base de données exclusivement.

JET_errDatabaseInvalidPages

Retourné lorsque cpgDatabaseSizeMax est supérieur au nombre maximal de pages autorisées dans une base de données. Le maximum actuel est 2147483646 (0x7ffffffe).

JET_errDatabaseInvalidPath

Un chemin d’accès non valide a été donné dans szFilename. szFilename doit avoir une valeur non NULL. Par défaut, szFilename doit pointer vers un répertoire qui existe. Le chemin d’accès sera créé si JET_paramCreatePathIfNotExist est défini (voir JetSetSystemParameter).

JET_errDatabaseLocked

Indique qu’une autre session a déjà ouvert la base de données exclusivement (à l’aide de JET_bitDbExclusive).

JET_errDatabaseNotFound

La base de données n’était pas attachée auparavant (voir JetAttachDatabase).

JET_errDatabaseSharingViolation

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

JET_errInTransaction

Une tentative de création d’une base de données dans une transaction a été effectuée.

JET_errInvalidDatabase

Une tentative d’ouverture d’un fichier qui n’est pas un fichier de base de données valide a été effectuée.

JET_errOneDatabasePerSession

Une tentative d’ouverture de plusieurs bases de données a été effectuée et JET_paramOneDatabasePerSession a été défini. Consultez Paramètres de base de données.

JET_errOutOfMemory

L’opération a échoué, car la mémoire n’a pas pu être allouée.

JET_errTooManyAttachedDatabases

Seul un nombre fini de base 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é joint par cette session.

JET_wrnFileOpenReadOnly

JET_wrnFileOpenReadOnly indique que le fichier a été joint en lecture seule, mais que JetCreateDatabase n’a pas réussi JET_bitDbReadOnly. La base de données est toujours ouverte avec un accès en lecture seule.

Notes

Si la base de données spécifiée dans szFilename existe et que JET_bitDbOverwriteExisting n’a pas été transmise, l’appel d’API échoue. Si JET_bitDbOverwriteExisting a été transmis, l’ancien fichier de base de données est d’abord supprimé.

Si l’API crée un fichier de base de données, puis rencontre une autre erreur, elle propre et supprime le fichier.

JetCreateDatabase ouvre implicitement la base de données. Il ne s’agit pas nécessairement d’appeler par la suite JetOpenDatabase.

Spécifications

Condition requise Valeur

Client

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

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 JetCreateDatabaseW (Unicode) et JetCreateDatabaseA (ANSI).

Voir aussi

Fichiers du moteur de stockage extensibles
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase2
JetOpenDatabase
JetSetSystemParameter
Paramètres système