Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
entity.drop( )
|
entity.drop ( {mode} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
mode | Entier long |
![]() |
dk force drop if stamp changed : force la suppression même si le marqueur interne a changé | |||||
Résultat | Objet |
![]() |
Résultat de l'opération de suppression | |||||
La méthode entity.drop( ) supprime les données de l'entité de la table associée à la dataclass. A noter que l'entité reste en mémoire.
Dans une application multiprocess ou multi-utilisateurs, la méthode entity.drop( ) est exécutée en mode "verrouillage optimiste", dans lequel un marqueur de verrouillage interne est automatiquement incrémenté à chaque sauvegarde de l'enregistrement. Pour plus d'informations, veuillez vous reporter à la page Verrouillage d'entités.
Par défaut, lorsque le paramètre mode est omis, la méthode retourne une erreur (cf. ci-dessous) si l'entité a été modifiée (i.e. le marqueur interne a changé) entre-temps par un autre process ou utilisateur.
Sinon, vous pouvez passer l'option dk force drop if stamp changed dans le paramètre mode : dans ce cas, l'entité est supprimée même si la valeur du marqueur interne est différente (si la clé primaire est identique).
Résultat
L'objet retourné par entity.drop( ) contient les propriétés suivantes :
Propriété | Type | Description | |
success | booléen | Vrai si l'action de suppression a été effectuée avec succès, sinon Faux. | |
Disponible uniquement en cas d'erreur : | |||
status(*) | numérique | Code d'erreur, voir ci-dessous | |
statusText(*) | texte | Description de l'erreur, voir ci-dessous | |
Disponible uniquement en cas d'erreur de verrouillage pessimiste : | |||
LockKindText | texte | "Locked by record" | |
lockInfo | objet | Information sur l'origine du verrouillage | |
task_id | numérique | ID du process | |
user_name | texte | Nom d'utilisateur de la session sur la machine | |
user4d_alias | texte | Alias utilisateur défini avec SET USER ALIAS, sinon le nom d'utilisateur dans le répertoire de la base 4D | |
user4d_id | numérique | Numéro de l'utilisateur 4D (Disponible uniquement dans les bases 4D binaires) | |
host_name | texte | Nom de la machine | |
task_name | texte | Nom du process | |
client_version | texte | ||
Disponible uniquement en cas d'erreur critique (clé primaire dupliquée, disque plein...) : | |||
errors | collection d'objets | ||
message | texte | Message d'erreur | |
component signature | texte | Signature du composant interne (p.e. "dmbg" pour le composant de base de données) | |
errCode | nombre | Code d'erreur |
(*) Les valeurs suivantes peuvent être retournées dans les propriétés status et statusText de l'objet Résultat en cas d'erreur :
Constante | Valeur | Comment |
dk status entity does not exist anymore | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants :
statusText associé : "Entity does not exist anymore" |
dk status locked | 3 | L'entité est verrouillée par un verrou pessimiste. statusText associé : "Already locked" |
dk status serious error | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc. statusText associé : "Other error" |
dk status stamp has changed | 2 | La valeur du marqueur interne (stamp) de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
|
Exemple sans option 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("Vous avez supprimé "+$employee.firstName+" "+$employee.lastName) //L'entité supprimée reste en mémoire
:($status.status=dk status stamp has changed)
ALERT($status.statusText)
End case
Même exemple avec l'option 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("Vous avez supprimé "+$employee.firstName+" "+$employee.lastName) //L'entité supprimée reste en mémoire
:($status.status=dk status entity does not exist anymore)
ALERT($status.statusText)
End case
Produit : 4D
Thème : ORDA - Entity
Créé : 4D v17
4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)