Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
entity.drop( )
|
entity.drop ( {modo} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
modo | Entero largo |
![]() |
dk force drop if stamp changed: fuerza la supresión incluso si el marcador interno ha cambiado | |||||
Resultado | Objeto |
![]() |
Resultado de la operación de supresión | |||||
El método entity.drop( ) elimina los datos de la entidad de la tabla asociada a la dataclass. Tenga en cuenta que la entidad permanece en la memoria.
En una aplicación multiusuario o multiproceso, el método entity.drop( ) se ejecuta en modo "bloqueo optimista", mientras que un marcador de bloqueo interno se incrementa automáticamente cada vez que se guarda el registro. Para más información, consulte la página Bloquear entidades.
Por defecto, si se omite el parámetro modo, el método devolverá un error (ver abajo) si la entidad fue modificada (es decir, el marcador interno ha cambiado) mientras tanto por otro proceso o usuario.
De lo contrario, puede pasar la opción dk force drop if stamp changed en el parámetro modo: en este caso, la entidad se suelta incluso si el valor del marcador ha cambiado (si la llave primaria sigue siendo la misma).
Resultado
El objeto devuelto por entity.drop( ) contiene las siguientes propiedades:
Propiedad | Tipo | Descripción | |
success | booleano | true si la acción de guardar es exitosa, de lo contrario es false. | |
Disponible solo si se utiliza la opción dk auto merge: | |||
autoMerged | booleano | true si se realizó una fusión automática, en caso contrario, false. | |
Disponible solo en caso de error: | |||
status(*) | número | Código de error, ver a continuación | |
statusText(*) | texto | Descripción del error, ver a continuación | |
Disponible solo en caso de error de bloqueo pesimista: | |||
LockKindText | texto | "Bloqueado por registro" | |
lockInfo | objeto | Información sobre el origen del bloqueo | |
task_id | número | ID del proceso | |
user_name | texto | Nombre de usuario de sesión en la máquina | |
user4d_alias | texto | Alias de usuario definido con SET USER ALIAS, o bien nombre de usuario en el directorio de la base 4D | |
user4d_id | número | Número de usuario 4D (solo disponible en bases binarias 4D) | |
host_name | texto | Nombre del equipo | |
task_name | texto | Nombre del proceso | |
client_version | texto | ||
Disponible solo en caso de error grave (error grave al tratar de duplicar una llave primaria, disco lleno...): | |||
errors | colección de objetos | ||
message | texto | Mensaje de error | |
component signature | texto | Firma del componente interno (por ejemplo, "dmbg" representa el componente de la base) | |
errCode | número | Código de error |
(*) Los siguientes valores pueden devolverse en las propiedades status y statusText del objeto Resultado en caso de error:
Constante | Valor | Comentario |
dk status entity does not exist anymore | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
statusText asociado: "La entidad ya no existe" |
dk status locked | 3 | La entidad está bloqueada por un bloqueo pesimista. statusText asociado: "Ya bloqueado" ("Already locked") |
dk status serious error | 4 | Un error grave es un error de bajo nivel de la base de datos (por ejemplo, llave duplicada), un error de hardware, etc. statusText asociado: "Otro error" ("Other error") |
dk status stamp has changed | 2 | El valor de stamp interno de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
|
Ejemplo sin la opción dk force drop if stamp changed:
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) //La entidad soltada permanece en la memoria
:($status.status=dk status stamp has changed)
ALERT($status.statusText)
End case
Ejemplo con la opción dk force drop if stamp changed:
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) //La entidad soltada permanece en memoria
:($status.status=dk status entity does not exist anymore)
ALERT($status.statusText)
End case
Producto: 4D
Tema: ORDA - Entity
Creado por: 4D v17
Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)