Funzione JetDelete

Si applica a: Windows | Windows Server

Funzione JetDelete

La funzione JetDelete elimina il record corrente in una tabella di database.

    JET_ERR JET_API JetDelete(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid
    );

Parametri

sesid

Contesto della sessione di database che verrà usato per la chiamata API.

tableid

Cursore in una tabella di database. La riga corrente verrà eliminata.

Valore restituito

Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sui possibili errori ESE, vedere Errori del motore di archiviazione estendibile e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errCallbackFailed

La funzione di callback non è riuscita in qualche modo. Ad esempio, le violazioni di accesso nelle funzioni di callback vengono intercettati e convertiti in JET_errCallbackFailed. Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errClientRequestToStopJetService

Non è possibile completare l'operazione perché tutte le attività sull'istanza associata alla sessione sono cessate a seguito di una chiamata a JetStopService.

JET_errIllegalOperation

Il cursore specificato da tableid non supporta l'eliminazione. Vedere la sezione relativa alle osservazioni.

JET_errInstanceUnavailable

Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede la revoca dell'accesso a tutti i dati per proteggere l'integrità dei dati. Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errNoCurrentRecord

Il cursore specificato da tableid non si trova in un record.

JET_errNotInitialized

Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata.

JET_errRestoreInProgress

Non è possibile completare l'operazione perché è in corso un'operazione di ripristino nell'istanza associata alla sessione.

JET_errPermissionDenied

Il motore di database non dispone di autorizzazioni sufficienti per eliminare il record. Ciò può verificarsi se il file di database è stato aperto con accesso di sola lettura.

JET_errRollbackError

Esiste un buffer di aggiornamento (vedere JetPrepareUpdate), ma non tutte le modifiche apportate alle colonne di tipo JET_coltypLongText e/o colonne di tipo JET_coltypLongBinary potrebbero essere ripristinate.

JET_errSessionSharingViolation

È illegale usare la stessa sessione da più thread contemporaneamente. Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errTermInProgress

Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata.

JET_errTransReadOnly

La transazione è una transazione di sola lettura e non supporta le eliminazioni.

JET_errVersionStoreOutOfMemory

L'operazione non è riuscita perché la memoria non è sufficiente per conservare le informazioni transazionali sull'aggiornamento.

JET_errWriteConflict

Un'altra sessione ha precedentemente bloccato il record per l'aggiornamento. L'aggiornamento tentato da questa sessione avrà esito negativo.

In caso di successo, la valuta viene lasciata subito prima del record successivo. Se il record eliminato è l'ultimo nella tabella, la valuta viene lasciata alla fine della tabella , ovvero dopo il nuovo record. Se il record eliminato è l'unico record nella tabella, la valuta viene impostata sull'inizio.

Gli indici appropriati vengono aggiornati automaticamente.

Se un aggiornamento viene preparato (usando JetPrepareUpdate), verrà annullato. Il buffer di aggiornamento verrà reimpostato.

In caso di fallimento, la valuta rimane invariata. Se viene preparato un aggiornamento (vedere JetPrepareUpdate), è possibile reimpostare il buffer di aggiornamento.

Commenti

Non tutte le tabelle supportano l'eliminazione di righe. Una tabella temporanea non supporta in genere l'eliminazione di righe. L'eliminazione dei record può essere abilitata nelle tabelle temporanee per molti motivi, ad esempio:

  • JET_bitTTUpdatable specificato durante la creazione.

  • Le tabelle temporanee di grandi dimensioni possono supportare l'eliminazione se sono state create con JET_bitTTScrollable o JET_bitTTIndexed. La soglia in cui una tabella temporanea diventa "grande" è attualmente di 64 kilobyte, ma può essere modificata nelle versioni future.

Windows XP e versioni successive. Le funzioni di callback possono essere richiamate da JetDelete, incluse JET_cbtypBeforeDelete e JET_cbtypAfterDelete.

È importante comprendere l'impatto dell'esecuzione di un numero elevato di operazioni di aggiornamento all'interno di una singola transazione. Ogni aggiornamento al database deve essere rilevato dal motore di database nell'archivio delle versioni. L'archivio versioni contiene un record attivo di tutte le diverse versioni di ogni record o voce di indice nel database che può essere visualizzato da tutte le transazioni attive. Queste versioni vengono usate per supportare il controllo della concorrenza con più versioni in uso dal motore di database per supportare le transazioni tramite l'isolamento dello snapshot. Dopo che il motore di database ha esaurito le risorse usate per archiviare queste versioni, non può più accettare ulteriori modifiche fino a quando alcune transazioni non hanno concluso per consentire il recupero di queste risorse. Quando il motore è in questo stato, tutti gli aggiornamenti avranno esito negativo con JET_errVersionStoreOutOfMemory. Le risorse disponibili per il motore di database per archiviare queste versioni possono essere controllate tramite JetSetSystemParameter con JET_paramMaxVerPages e JET_paramGlobalMinVerPages.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Vedere anche

JET_ERR
JET_SESID
JET_TABLEID
JetOpenTempTable
JetPrepareUpdate
Parametri di sistema