Erstellen, Aktualisieren und Löschen von Daten mit ORDA

Automatisch übersetzt von Deepl

4D v17 stellt vor ORDAORDA ist eine wichtige Entwicklung in 4D, die 4D Entwicklern eine Welt neuer Möglichkeiten eröffnet. Wenn Sie mehr über ORDA und seine Vorteile erfahren möchten, lesen Sie diesen Beitrag, um zu sehen, wie ORDA Ihre Arbeitsweise verändern wird. Um Sie bei der Erkundung von ORDA zu unterstützen, haben wire’ve prepared eine Reihe von Blog-Beiträgen verfasst, die sich ausschließlich mit den Konzepten von core und den damit verbundenen Funktionen befassen. In diesem Blogbeitrag wird detailliert beschrieben, wie Sie mit ORDACRUD-Operationen in Ihrer Datenbank durchführen können. CRUD ist ein Akronym für die vier grundlegenden Operationen, die Sie mit Daten durchführen können: Erstellen, Lesen, Aktualisierenund Löschen.

EINLEITUNG

Mit ORDA erfolgt der Zugriff auf Daten über eine Abstraktionsschicht: den Datenspeicher. Ein Datenspeicher ist ein Objekt, das eine Schnittstelle zur Datenbank und ihren Daten über Objekte bietet. So wird beispielsweise eine Tabelle auf ein Datenklassenobjekt abgebildet, ein Feld ist ein Attribut einer Datenklasse und Datensätze sind Entitäten. Der Befehl new ds Befehl gibt einen Verweis auf den Anwendungsdatenspeicher zurück. Wenn Sie mehr darüber erfahren möchten, werfen Sie einen Blick auf den Übersichtsartikel in der Dokumentation.

Um Sie bei der Erkundung der ORDA-Funktionen zu unterstützen, haben wir ein Glossar mit den verschiedenen Begriffen und Konzepten sowie deren Definition erstellt.

CRUD-Operationen

Mit ORDA werden die Operationen Erstellen, Aktualisieren und Löschen nicht auf einer aktuellen Auswahl oder einem aktuellen Datensatz ausgeführt, sondern auf Entitäten. Dies ermöglicht es Ihnen, mehrere Entitäten (gleichzeitig) zu verwalten, um Ihre Aktionen durchzuführen.

ORDA – CRUD-Operationen durchführen

erstellen

Die Operation Create wird einfach durch die Instanziierung einer neuen Entität mit der Methode new() und das anschließende Speichern mit der save() Methode.

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

aktualisieren

Der Vorgang Update wird für eine Entität mit der gleichen save() Methode durchgeführt.

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

löschen

Die Operation Löschen wird für eine Entität oder eine Entitätsauswahl mit der Methode drop() Methode durchgeführt.

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

SPERREN VON ENTITÄTEN

Die Arbeit mit pessimistischen Sperren ist mit ORDA möglich. In der klassischen Kodierung wird der Locked Befehl verwendet, um zu prüfen, ob der aktuelle Datensatz einer Tabelle gesperrt ist oder nicht.

Mit ORDA muss die Entität gesperrt sein, bevor sie aktualisiert werden kann. Die Methode lock() Methode gibt ein Ergebnis zurück, das angibt, ob die Sperre erfolgreich war oder nicht. Sobald die Entität aktualisiert wurde, muss sie mit der unlock() Methode entsperrt werden.

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

Die gute Nachricht ist, dass Sie in ORDA wählen können, ob Sie mit optimistischen oder pessimistischen Sperren arbeiten wollen. Wir werden Ihnen alle Einzelheiten in einem eigenen Beitrag über beide Sperrmodi mitteilen. Bleiben Sie dran!

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.