Créer, mettre à jour et supprimer des données avec ORDA

Traduit automatiquement de Deepl

4D v17 introduit ORDAORDA, une évolution majeure de 4D qui ouvre un monde de nouvelles possibilités pour les développeurs 4D. Pour en savoir plus sur ORDA et ses avantages, consultez ce post pour voir comment ORDA va changer votre façon de travailler. Afin de vous guider dans l’exploration d’ORDA, we’ve prepared une série d’articles de blog entièrement dédiés aux concepts de core et aux fonctionnalités associées. Ce billet de blog détaillera comment vous pouvez effectuer des opérations CRUD sur votre base de données avec ORDA. CRUD est un acronyme pour les quatre opérations de base que vous pouvez effectuer sur des données : Créer, Lire, Mettre à jouret Supprimer.

INTRODUCTION

Avec ORDA, l’accès aux données se fait via une couche d’abstraction : le datastore. Un datastore est un objet qui fournit une interface à la base de données et à ses données par le biais d’objets. Par exemple, une table est mise en correspondance avec un objet de classe de données, un champ est un attribut d’une classe de données et les enregistrements sont des entités. La commande new ds renvoie une référence sur le datastore de l’application. Si vous souhaitez en savoir plus, consultez l’article de présentation dans la documentation.

Pour vous guider dans l’exploration des fonctionnalités ORDA , nous avons préparé un glossaire des différents termes et concepts, ainsi que leur définition.

Opérations CRUD

Avec ORDA, les opérations de création, mise à jour et suppression ne sont pas effectuées sur une sélection ou un enregistrement courant , mais sur des entités. Cela vous permet de gérer plusieurs ensembles d’entités (en même temps) pour effectuer vos actions.

ORDA – Exécuter des opérations CRUD

créer

L’opération Create se fait simplement en instanciant une nouvelle entité avec la méthode new() et en l’enregistrant avec la méthode save() pour l’enregistrer.

C_OBJECT($status;$employee)
$employee :=ds.Employee.new() // Create a new employee
$employee .lastName:= "Smith" // Set the last name to "Smith"
$status :=$employee.save() // Save employee

mise à jour de

L’opération Update est effectuée sur une entité en utilisant la même méthode. save() méthode.

C_OBJECT($status;$employee)
$employee :=ds.Employee.query("lastName=:1" ; "Smith").first() // Get first employee whose name is "Smith"
If ($employee#Null)
$employee .lastName:= "Mac Arthur" // Set the last name to "Mac Arthur"
$status :=$employee.save(
) // Save employee
End if

supprimer

L’opération Supprimer est effectuée sur une entité ou une sélection d’entités à l’aide de la méthode drop() méthode.

C_OBJECT($status;$employee)
$employee :=ds.Employee.query("lastName=:1" ; "Mac Arthur").first() // Get first employee whose name is "Mac Arthur"
If ($employee#Null)
$status :=$employee.drop(
) // Delete the employee data but the $employee entity remains in memory
End if

VERROUILLAGE DES ENTITÉS

Travailler avec un verrouillage pessimiste est possible avec ORDA. Dans la manière classique de coder, la commande Locked est utilisée pour vérifier si l’enregistrement courant d’une table est verrouillé ou non.

Avec ORDA , l’entité doit être verrouillée avant de la mettre à jour. La méthode lock() retourne un résultat indiquant si le verrouillage a réussi ou non. Une fois que l’entité est mise à jour, elle doit être déverrouillée avec la méthode unlock() méthode.

C_OBJECT($employee;$statusLock;$statusSave;$statusUnLock)
$employee :=ds.Employee.query("lastName=:1" ; "Wates").first()
If ($employee#Null)
$statusLock :=$employee.lock() // Lock entity
If ($statusLock.success) // The entity has been successfully locked
$employee.lastName:="Mac Arthur" // Set name to "Mac Arthur"
$statusSave :=$employee.save() // Save employee
$statusUnLock :=$employee.unlock() // Unlock entity
End if
End if

La bonne nouvelle est qu’ORDA vous permet de choisir si vous voulez travailler avec un verrouillage optimiste ou pessimiste. Nous vous donnerons tous les détails dans un article dédié aux deux modes de verrouillage. Restez à l’écoute !

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.