Fonction JetDelete
S’applique à : Windows | Windows Server
Fonction JetDelete
La fonction JetDelete supprime l’enregistrement actif dans une table de base de données.
JET_ERR JET_API JetDelete(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
Paramètres
sesid
Contexte de session de base de données qui sera utilisé pour l’appel d’API.
tableid
Curseur sur une table de base de données. La ligne actuelle sera supprimée.
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_errCallbackFailed |
La fonction de rappel a échoué d’une manière ou d’une autre. Par exemple, les violations d’accès dans les fonctions de rappel sont interceptées et traduites en JET_errCallbackFailed. Cette erreur sera uniquement retournée par Windows XP et versions ultérieures. |
JET_errClientRequestToStopJetService |
Il n’est pas possible d’effectuer l’opération, car toutes les activités sur le instance associées à la session ont cessé à la suite d’un appel à JetStopService. |
JET_errIllegalOperation |
Le curseur spécifié par tableid ne prend pas en charge la suppression. Consultez la section Notes. |
JET_errInstanceUnavailable |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session a rencontré une erreur irrécupérable qui exige que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données. Cette erreur sera retournée uniquement par Windows XP et les versions ultérieures. |
JET_errNoCurrentRecord |
Le curseur spécifié par tableid ne se trouve pas sur un enregistrement. |
JET_errNotInitialized |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session n’a pas encore été initialisé. |
JET_errRestoreInProgress |
Il n’est pas possible d’effectuer l’opération, car une opération de restauration est en cours sur le instance associé à la session. |
JET_errPermissionDenied |
Le moteur de base de données ne dispose pas des autorisations suffisantes pour supprimer l’enregistrement. Cela peut se produire si le fichier de base de données a été ouvert avec un accès en lecture seule. |
JET_errRollbackError |
Une mémoire tampon de mise à jour (voir JetPrepareUpdate) existe, mais toutes les modifications apportées aux colonnes de type JET_coltypLongText et/ou aux colonnes de type JET_coltypLongBinary ne peuvent pas être restaurées. |
JET_errSessionSharingViolation |
Il est interdit d’utiliser la même session à partir de plusieurs threads en même temps. Cette erreur sera retournée uniquement par Windows XP et les versions ultérieures. |
JET_errTermInProgress |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session est en cours d’arrêt. |
JET_errTransReadOnly |
La transaction est une transaction en lecture seule et ne prend pas en charge les suppressions. |
JET_errVersionStoreOutOfMemory |
L’opération a échoué, car la mémoire est insuffisante pour conserver les informations transactionnelles sur la mise à jour. |
JET_errWriteConflict |
Une autre session a précédemment verrouillé l’enregistrement pour mise à jour. La mise à jour tentée par cette session échoue. |
En cas de réussite, la devise est laissée juste avant l’enregistrement suivant. Si l’enregistrement supprimé était le dernier de la table, la devise est laissée à la fin de la table (c’est-à-dire après le nouvel enregistrement). Si l’enregistrement supprimé était le seul enregistrement de la table, la devise est définie sur le début.
Les index appropriés sont automatiquement mis à jour.
Si une mise à jour est préparée (à l’aide de JetPrepareUpdate), elle est annulée. La mémoire tampon de mise à jour sera réinitialisée.
En cas d’échec, la devise reste inchangée. Si une mise à jour est préparée (consultez JetPrepareUpdate), la mémoire tampon de mise à jour peut être réinitialisée.
Notes
Toutes les tables ne prennent pas en charge la suppression de lignes. Une table temporaire ne prend normalement pas en charge la suppression de lignes. La suppression d’enregistrements peut être activée sur des tables temporaires pour de nombreuses raisons, dont certaines sont les suivantes :
JET_bitTTUpdatable a été spécifié lors de la création.
Les tables temporaires volumineuses peuvent prendre en charge la suppression si elles ont été créées avec JET_bitTTScrollable ou JET_bitTTIndexed. Le seuil auquel une table temporaire devient « volumineuse » est actuellement de 64 kilo-octets, mais il peut être modifié dans les versions ultérieures.
Windows XP et versions ultérieures. Les fonctions de rappel peuvent être appelées par JetDelete, notamment JET_cbtypBeforeDelete et JET_cbtypAfterDelete.
Il est important de comprendre l’impact de l’exécution d’un grand nombre d’opérations de mise à jour à l’intérieur d’une transaction unique. Chaque mise à jour de la base de données doit être suivie par le moteur de base de données dans le magasin de versions. Le magasin de versions contient un enregistrement actif de toutes les différentes versions de chaque enregistrement ou entrée d’index de la base de données qui peut être vu par toutes les transactions actives. Ces versions sont utilisées pour prendre en charge le contrôle d’accès concurrentiel multi-version utilisé par le moteur de base de données pour prendre en charge les transactions à l’aide de instantané isolation. Une fois que le moteur de base de données a épuisé les ressources utilisées pour stocker ces versions, il ne peut plus accepter d’autres modifications tant que certaines transactions n’ont pas été conclues pour permettre la récupération de ces ressources. Lorsque le moteur est dans cet état, toutes les mises à jour échouent avec JET_errVersionStoreOutOfMemory. Les ressources disponibles pour le moteur de base de données pour stocker ces versions peuvent être contrôlées à l’aide de JetSetSystemParameter avec JET_paramMaxVerPages et JET_paramGlobalMinVerPages.
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. |
Voir aussi
JET_ERR
JET_SESID
JET_TABLEID
JetOpenTempTable
JetPrepareUpdate
Paramètres système