Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
entity.drop( )
|
entity.drop ( {modo} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
modo | Inteiro longo |
![]() |
dk force drop if stamp changed: força a derrubada mesmo se a stamp mudou | |||||
Resultado | Objeto |
![]() |
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:
Propriedade | Tipo | Descrição | |
success | booleano | true se a ação de salvar tiver sucesso, do contrário é false. | |
Disponível só se for utilizada a opção dk auto merge: | |||
autoMerged | booleano | true se realizar uma fusão automatica, no caso contrário, false. | |
Disponível só em caso de erro: | |||
status(*) | número | Código de erro, ver a seguir | |
statusText(*) | texto | Descrição do erro, ver a seguir | |
Disponível só no caso de erro de bloqueio pessimista: | |||
LockKindText | texto | "Bloqueado por registro" | |
lockInfo | objeto | Informação sobre a origem do bloqueio | |
task_id | número | ID do processo | |
user_name | texto | Nome de usuário de sessão na máquina | |
user4d_alias | texto | Alias/apelido de usuário definido com SET USER ALIAS, ou o nome de usuário no diretório do banco de dados 4D | |
user4d_id | número | Número de usuario 4D (só disponível em bancos de dados binários 4D) | |
host_name | texto | Nome de máquina host | |
task_name | texto | Nome de processo | |
client_version | texto | ||
Disponível só no caso de erro grave (erro grave ao tentar duplicar uma chave primária, disco cheio...): | |||
errors | coleção de objetos | ||
message | texto | Mensagem de erro | |
component signature | texto | Assinatura do componente interno (por exemplo, "dmbg" representa o componente do banco de dados) | |
errCode | número | Có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:
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).
|
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
Produto: 4D
Tema: ORDA - Entidade
Criado por: 4D v17
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)