Vytváření, aktualizace a mazání dat pomocí ORDA

Automaticky přeloženo z Deepl

4D v17 představuje ORDA, zásadní evoluci ve 4D, která vývojářům 4D otevírá svět nových možností. Chcete-li se o systému ORDA a jeho výhodách dozvědět více, přečtěte si tento příspěvek a zjistěte, jak systém ORDA změní způsob vaší práce. Abychom vás provedli průzkumem ORDA, we’ve prepared série příspěvků na blogu plně věnovaná konceptům core a souvisejícím funkcím. Tento příspěvek na blogu podrobně popisuje, jak můžete provádět operace CRUD nad databází pomocí ORDA. CRUD je zkratka pro čtyři základní operace, které můžete provádět s daty: Create, Read, Updatea Delete.

ÚVOD

V ORDA se k datům přistupuje prostřednictvím abstrakční vrstvy: datového úložiště. Datové úložiště je objekt, který poskytuje rozhraní k databázi a jejím datům prostřednictvím objektů. Například tabulka je mapována na objekt datové třídy, pole je atribut datové třídy a záznamy jsou entity. Nový ds vrací odkaz na datové úložiště aplikace. Pokud se chcete dozvědět více, podívejte se na přehledový článek v dokumentaci.

Abychom vás provedli zkoumáním funkcí ORDA , připravili jsme pro vás slovníček různých pojmů a konceptů spolu s jejich definicemi.

Operace CRUD

V systému ORDA se operace Vytvořit, Aktualizovat a Odstranit neprovádějí nad aktuálním výběrem nebo aktuálním záznamem, ale nad entitami. Díky tomu můžete spravovat několik sad entit (současně) a provádět s nimi své akce.

ORDA – Provádění operací CRUD

vytvořit

Operace Vytvořit se provádí jednoduše tak, že se nová entita instancuje pomocí metody new( ) a poté se uloží příkazem save() metodou.

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

update

Operace Update se provádí nad entitou pomocí stejné metody save() metodou.

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

vymazat

Operace Delete se provádí na entitě nebo výběru entit pomocí metody drop() metodou.

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

UZAMYKÁNÍ ENTIT

Práce s pesimistickým zamykáním je možná pomocí ORDA. Při klasickém způsobu kódování se Locked se příkaz používá ke kontrole, zda je aktuální záznam tabulky uzamčen, či nikoliv.

Pomocí ORDA musí být entita před aktualizací uzamčena. Příkaz lock() metoda vrací výsledek, který udává, zda bylo uzamčení úspěšné, nebo ne. Jakmile je entita aktualizována, je třeba ji odemknout příkazem unlock() metodou.

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

Dobrou zprávou je, že ORDA umožňuje zvolit, zda chcete pracovat s optimistickým nebo pesimistickým zamykáním. Všechny podrobnosti vám poskytneme ve zvláštním příspěvku o obou režimech zamykání. Zůstaňte naladěni!

Avatar
• Product Owner • Marie-Sophie Landrieu-Yvert se připojila k programovému týmu 4D jako Product Owner v roce 2017. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Marie-Sophie vystudovala inženýrskou školu ESIGELEC a svou kariéru zahájila jako inženýrka v IBM v roce 1995. Podílela se na různých projektech (projekty údržby nebo výstavby) a pracovala jako vývojářka Cobol. Poté pracovala jako UML designer a Java developer. V poslední době byly jejími hlavními rolí analyzovat a psát funkčních požadavky a koordinovat obchodní a vývojové týmy.