Fonction JetCreateDatabase2
S’applique à : Windows | serveur Windows
Fonction JetCreateDatabase2
La fonction JetCreateDatabase2 crée et attache un fichier de base de données à utiliser avec le moteur de base de données ESE avec une taille de base de données maximale spécifiée. 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 JetCreateDatabase2(
__in JET_SESID sesid,
__in const tchar* szFilename,
__in const unsigned long cpgDatabaseSizeMax,
__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.
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 et peut être modifiée avec 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.
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 ou JetCreateDatabase2 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 ne sera pas remplacée. JET_bitDbOverwriteExisting modifie ce comportement et l’ancienne base de données est remplacée par une nouvelle base de données. 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 est effectuée pour la résilience. Par conséquent, la définition de JET_bitDbShadowingOff supprimera cette résilience. |
Valeur de retour
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 extensible Stockage 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. La valeur maximale actuelle est 2147483646 (0x7ffffffe). |
JET_errDatabaseInvalidPath |
Un chemin d’accès non valide a été donné dans szFilename. szFilename doit être non NULL. Par défaut, szFilename doit pointer vers un répertoire qui existe. Le chemin d’accès est 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’a pas été attachée précédemment (voir JetAttachDatabase). |
JET_errDatabaseSharingViolation |
Le fichier de base de données a déjà été attaché par une autre session. |
JET_errInTransaction |
Une tentative a été effectuée pour créer une base de données dans une transaction. |
JET_errInvalidDatabase |
Une tentative a été effectuée pour ouvrir un fichier qui n’est pas un fichier de base de données valide. |
JET_errOneDatabasePerSession |
Une tentative a été effectuée pour ouvrir plusieurs bases de données et JET_paramOneDatabasePerSession a été définie. Consultez paramètres système. |
JET_errOutOfMemory |
Le système a été faible sur les ressources. |
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é attaché par cette session. |
JET_wrnFileOpenReadOnly |
JET_wrnFileOpenReadOnly indique que le fichier a été joint en lecture seule, mais 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é passée, l’appel d’API échoue. Si JET_bitDbOverwriteExisting a été passé, l’ancien fichier de base de données est supprimé en premier.
Si l’API crée un fichier de base de données, puis atteint une autre erreur, elle nettoie et supprime le fichier.
JetCreateDatabase2 ouvre implicitement la base de données. Il n’est pas nécessaire par la suite d’appeler JetOpenDatabase.
Configuration requise
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 JetCreateDatabase2W (Unicode) et JetCreateDatabase2A (ANSI). |
Voir aussi
Fichiers de moteur de Stockage extensibles
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
Paramètres système