Função JetDelete

Aplica-se a: Windows | Windows Server

Função JetDelete

A função JetDelete exclui o registro atual em uma tabela de banco de dados.

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

Parâmetros

sesid

O contexto de sessão do banco de dados que será usado para a chamada à API.

Tableid

O cursor em uma tabela de banco de dados. A linha atual será excluída.

Valor Retornado

Essa função retorna o tipo de dados JET_ERR com um dos seguintes códigos de retorno. Para obter mais informações sobre os possíveis erros de ESE, consulte Erros extensíveis do mecanismo de armazenamento e parâmetros de tratamento de erros.

Código de retorno

Descrição

JET_errSuccess

A operação foi concluída com sucesso.

JET_errCallbackFailed

A função de retorno de chamada falhou de alguma maneira. Por exemplo, as violações de acesso em funções de retorno de chamada são capturadas e convertidas em JET_errCallbackFailed. Esse erro só será retornado pelo Windows XP e posterior.

JET_errClientRequestToStopJetService

Não é possível concluir a operação porque todas as atividades na instância associada à sessão cessaram como resultado de uma chamada para JetStopService.

JET_errIllegalOperation

O cursor especificado por tableid não dá suporte à exclusão. Consulte a seção Comentários.

JET_errInstanceUnavailable

Não é possível concluir a operação porque a instância associada à sessão encontrou um erro fatal que exige que o acesso a todos os dados seja revogado para proteger a integridade desses dados. Esse erro só será retornado pelo Windows XP e versões posteriores.

JET_errNoCurrentRecord

O cursor especificado por tableid não está em um registro.

JET_errNotInitialized

Não é possível concluir a operação porque a instância associada à sessão ainda não foi inicializada.

JET_errRestoreInProgress

Não é possível concluir a operação porque uma operação de restauração está em andamento na instância associada à sessão.

JET_errPermissionDenied

O mecanismo de banco de dados não tem permissões suficientes para excluir o registro. Isso poderá acontecer se o arquivo de banco de dados tiver sido aberto com acesso somente leitura.

JET_errRollbackError

Existe um buffer de atualização (consulte JetPrepareUpdate), mas nem todas as alterações feitas em colunas do tipo JET_coltypLongText e/ou colunas do tipo JET_coltypLongBinary podem ser revertidas.

JET_errSessionSharingViolation

É inválido usar a mesma sessão de mais de um thread ao mesmo tempo. Esse erro só será retornado pelo Windows XP e versões posteriores.

JET_errTermInProgress

Não é possível concluir a operação porque a instância associada à sessão está sendo desligada.

JET_errTransReadOnly

A transação é somente leitura e não dá suporte a exclusões.

JET_errVersionStoreOutOfMemory

A operação falhou porque não há memória suficiente para reter informações transacionais sobre a atualização.

JET_errWriteConflict

Outra sessão bloqueou anteriormente o registro para atualização. A atualização tentada por esta sessão falhará.

Em caso de sucesso, a moeda é deixada pouco antes do próximo registro. Se o registro excluído for o último na tabela, a moeda será deixada no final da tabela (ou seja, após o novo último registro). Se o registro excluído for o único registro na tabela, a moeda será definida como o início.

Os índices apropriados são atualizados automaticamente.

Se uma atualização for preparada (usando JetPrepareUpdate), ela será cancelada. O buffer de atualização será redefinido.

Em caso de falha, a moeda permanece inalterada. Se uma atualização estiver preparada (consulte JetPrepareUpdate), o buffer de atualização poderá ser redefinido.

Comentários

Nem todas as tabelas dão suporte à exclusão de linhas. Uma tabela temporária normalmente não dá suporte à exclusão de linhas. A exclusão de registros pode ser habilitada em tabelas temporárias por vários motivos, alguns dos quais são:

  • JET_bitTTUpdatable foi especificado durante a criação.

  • Tabelas temporárias grandes poderão dar suporte à exclusão se forem criadas com JET_bitTTScrollable ou JET_bitTTIndexed. O limite no qual uma tabela temporária se torna "grande" atualmente é de 64 quilobytes, mas pode ser alterado em versões futuras.

Windows XP e posterior. As funções de retorno de chamada podem ser invocadas pelo JetDelete, incluindo JET_cbtypBeforeDelete e JET_cbtypAfterDelete.

É importante entender o impacto de executar um grande número de operações de atualização dentro de uma única transação. Cada atualização para o banco de dados deve ser controlada pelo mecanismo de banco de dados no repositório de versão. O repositório de versão contém um registro ao vivo de todas as diferentes versões de cada registro ou entrada de índice no banco de dados que podem ser vistas por todas as transações ativas. Essas versões são usadas para dar suporte ao controle de simultaneidade de várias versões em uso pelo mecanismo de banco de dados para dar suporte a transações usando instantâneo isolamento. Depois que o mecanismo de banco de dados tiver esgotado os recursos usados para armazenar essas versões, ele não poderá mais aceitar mais alterações até que algumas transações tenham sido concluídas para permitir que esses recursos sejam recuperados. Quando o mecanismo estiver nesse estado, todas as atualizações falharão com JET_errVersionStoreOutOfMemory. Os recursos disponíveis para o mecanismo de banco de dados para armazenar essas versões podem ser controlados usando JetSetSystemParameter com JET_paramMaxVerPages e JET_paramGlobalMinVerPages.

Requisitos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

Requer o Windows Server 2008, o Windows Server 2003 ou o Windows 2000 Server.

Cabeçalho

Declarado em Esent.h.

Biblioteca

Use ESENT.lib.

DLL

Requer ESENT.dll.

Consulte Também

JET_ERR
JET_SESID
JET_TABLEID
JetOpenTempTable
JetPrepareUpdate
Parâmetros do sistema