Share via


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