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 !