Fonction JetCreateDatabase2
S’applique à : Windows | Windows Serveurs
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 à zéro est identique à l’appel de JETCREATEDATABASE avec szConnect défini sur null. Il est actuellement possible de créer jusqu’à sept bases de donné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 la session de base de données à utiliser pour l’appel d’API.
szFilename
Nom de la base de données à créer.
cpgDatabaseSizeMax
Taille maximale, en pages de base de données, pour la base de données. La taille de page de la 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 fait de passer la valeur zéro signifie qu’il n’y a pas de valeur maximale appliquée par le moteur de base de données.
pdbid
Pointeur vers une mémoire tampon qui, sur 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 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 de JET_bitDbShadowingOff désactive la duplication de certaines structures de base de données internes (occultation). La duplication de ces structures étant effectuée à des fins de résilience, la définition de JET_bitDbShadowingOff supprime 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 en mode exclusif. |
JET_errDatabaseInvalidPages |
Retourné lorsque cpgDatabaseSizeMax est plus grand que le 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é spécifié dans szFilename. szFilename doit être non null. Par défaut, szFilename doit pointer vers un répertoire existant. 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 en mode exclusif (à 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 plus d’une base de données et JET_paramOneDatabasePerSession a été définie. Consultez paramètres système. |
JET_errOutOfMemory |
Les ressources du système sont insuffisantes. |
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 récupérable 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é attaché 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. |
Remarques
Si la base de données spécifiée dans szFilename existe et que JET_bitDbOverwriteExisting n’a pas été transmis, l’appel de l’API échoue. Si JET_bitDbOverwriteExisting a été transmis, l’ancien fichier de base de données sera d’abord supprimé.
Si l’API crée un fichier de base de données, puis accède à une autre erreur, il nettoie et supprime le fichier.
JetCreateDatabase2 ouvre implicitement la base de données. Il n’est pas nécessaire d’appeler ensuite JetOpenDatabase.
Configuration requise
| Condition requise | Valeur |
|---|---|
Client |
requiert 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 |
Requiert ESENT.dll. |
Unicode |
Implémenté en tant que JetCreateDatabase2W (Unicode) et JetCreateDatabase2A (ANSI). |
Voir aussi
fichiers de moteur d’Stockage Extensible
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
Paramètres système