Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
entity.drop( )

entity.drop( ) 


 

entity.drop ( {modo} ) -> Resultado 
Parâmetro Tipo   Descrição
modo  Inteiro longo in dk force drop if stamp changed: força a derrubada mesmo se a stamp mudou
Resultado  Objeto in Resultado da operação soltar/drop.

O método entity.drop( ) elimina os dados da entidade da tabela associada a dataclasse. Lembre que la entidade permanece na memoria.

Em uma aplicação multiusuario ou multiprocesso, o método entity.drop( ) se executa em modo "bloqueio otimista", enquanto que um marcador de bloqueio interno se incrementa automaticamente cada vez que se salvar ol registro. Para mais informação, consulte a página Trancar Entidades.

Como padrão se omitir o parâmetro modo, o método devolverá um erro (ver abaixo) se a entidade for modificada (ou seja, o marcador interno tiver mudado) enquanto isso por outro processo ou por outro usuário.
Do contrário, pode passar a opção dk force drop if stamp changed no parâmetro modo: neste caso, a entidade se solta mesmo se o valor do marcador tiver mudado (se a chave primária continua sendo a mesma).

Resultado

O objeto devolvido por entity.drop( ) contém as propriedades abaixo:

PropriedadeTipoDescrição
successbooleanotrue se a ação de salvar tiver sucesso, do contrário é false.
Disponível só se for utilizada a opção dk auto merge:
autoMergedbooleanotrue se realizar uma fusão automatica, no caso contrário, false.
Disponível só em caso de erro:
status(*)númeroCódigo de erro, ver a seguir
statusText(*)textoDescrição do erro, ver a seguir
Disponível só no caso de erro de bloqueio pessimista:
LockKindTexttexto"Bloqueado por registro"
lockInfoobjetoInformação sobre a origem do bloqueio
task_idnúmeroID do processo
user_nametextoNome de usuário de sessão na máquina
user4d_aliastextoAlias/apelido de usuário definido com SET USER ALIAS, ou o nome de usuário no diretório do banco de dados 4D
user4d_idnúmeroNúmero de usuario 4D (só disponível em bancos de dados binários 4D)
host_nametextoNome de máquina host
task_nametextoNome de processo
client_versiontexto
Disponível só no caso de erro grave (erro grave ao tentar duplicar uma chave primária, disco cheio...):
errorscoleção de objetos
messagetextoMensagem de erro
component signaturetextoAssinatura do componente interno (por exemplo, "dmbg" representa o componente do banco de dados)
errCodenúmeroCódigo de erro

(*) Os valores abaixo podem ser devolvidos nas propriedades status e statusText do objeto Resultado em caso de erro:

Constante Valor Comentário
dk status entity does not exist anymore 5 A entidade não existe mais nos dados. Esse erro pode ocorrer nos casos abaixo:
  • a entidade foi suprimida (a stamp - carimbo - foi mudada e o espaço de memória agora está livre)
  • a entidade foi suprimida e substituída por outra com outra chave primária (a stamp - carimbo - foi mudada e a nova entidade agora usa o espaço de memória). Quando usar entity.drop( ), este erro pode ser retornado quando a opção dk force drop if stamp changed for usada. Quando usar entity.lock( ), este erro pode ser retornado quando a opção dk reload if stamp changed for usada

Texto de estado associado: "Entity does not exist anymore" - (a entidade não existe mais)

dk status locked 3 A entidade é bloqueada por um bloqueio pessimista
Texto de estado associado
: "Already locked" - já bloqueado
dk status serious error 4 Um erro sério é um erro de baixo nível de banco de dados (por exemplo, chave duplicada), um erro de hardware, etc
Texto associado de estado: "Other error" - outro erro
dk status stamp has changed 2

O valor do stamp (carimbo marcador) da entidade não corresponde ao da entidade armazenada nos dados (bloqueio otimista).

  • com entity.save( ): erro apenas se a opção dk auto merge não for usada
  • com entity.drop( ): erro apenas se a opção dk force drop if stamp changed não for usada
  • com entity.lock( ): erro apenas se a opção dk reload if stamp changed não for usada
Texto de estado associado: "Stamp has changed" - carimbo marcador foi modificado

 

Example without dk force drop if stamp changed option:

 C_OBJECT($employees;$employee;$status)
 $employees:=ds.Employee.query("lastName=:1";"Smith")
 $employee:=$employees.first()
 $status:=$employee.drop()
 Case of
    :($status.success)
       ALERT("You have dropped "+$employee.firstName+" "+$employee.lastName) //The dropped entity remains in memory
    :($status.status=dk status stamp has changed)
       ALERT($status.statusText)
 End case

Example with dk force drop if stamp changed option:

 C_OBJECT($employees;$employee;$status)
 $employees:=ds.Employee.query("lastName=:1";"Smith")
 $employee:=$employees.first()
 $status:=$employee.drop(dk force drop if stamp changed)
 Case of
    :($status.success)
       ALERT("You have dropped "+$employee.firstName+" "+$employee.lastName) //The dropped entity remains in memory
    :($status.status=dk status entity does not exist anymore)
       ALERT($status.statusText)
 End case



Ver também 

entity.save( )

 
PROPRIEDADES 

Produto: 4D
Tema: ORDA - Entidade

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v17

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)