ORDAによるデータの作成、更新、削除

Deeplからの自動翻訳

4D v17 を紹介します。 ORDAORDAは、4D開発者に新しい可能性の世界を開く、4Dの大きな進化です。ORDA の詳細とその利点については、この投稿をチェックして、ORDA があなたの仕事のやり方をどのように変えるかを見てください。ORDA の探求をガイドするために、e’ve prepared は、 core のコンセプトと関連する機能に完全に特化した一連のブログポストを用意しています。このブログ記事では、ORDA を使ってデータベース上でCRUD 操作を行う方法について詳しく説明します。 CRUDは、データに対して実行可能な 4 つの基本操作の頭文字をとったものです。作成読み込み更新削除です。

はじめに

ORDAでは、データはデータストアという抽象化レイヤーを介してアクセスされます。データストアは、オブジェクトを通してデータベースとそのデータへのインターフェイスを提供するオブジェクトです。例えば、テーブルはデータクラスオブジェクトにマップされ、フィールドはデータクラスの属性であり、レコードはエンティティである。new dsコマンドは、アプリケーション・データストアの参照を返します。もっと詳しく知りたい場合は、ドキュメントの概要記事を参照してください。

ORDAの 機能を理解するために、様々な用語や概念の定義と一緒に用語集を用意しました。

CRUD操作

ORDAでは作成、更新 削除の 操作は、現在の選択項目や 現在のレコードに対してではなくエンティティに対して行われます。これにより、アクションを実行するために、複数のエンティティのセットを(同時に)管理することができます。

ORDA – CRUD操作の実行

作成

Create 操作は、new()メソッドで新しいエンティティをインスタンス化し、そのエンティティを save()メソッドで保存します。

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 操作は、エンティティに対して同じ save()メソッドで行います。

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

削除

Delete 操作は、エンティティまたはエンティティ選択に対して drop() メソッドを使って行います。

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

エンティティのロック

ORDAでは、悲観的なロッキングを使用することができます。古典的なコーディング方法では Lockedコマンドは、テーブルの現在のレコードがロックされているかどうかをチェックするために使用されます。

ORDAでは 更新する前にエンティティをロックする必要があります。この lock()メソッドは、ロックが成功したかどうかを示す結果を返します。エンティティが更新されたら、それをunlock()メソッドでロックを解除する必要があります。

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

ORDAでは、楽観的 ロックと悲観的ロックのどちらを使用するかを選択できるのが良い点です。詳細は、両方のロックモードについて専用の投稿で説明します。ご期待ください。

Avatar
- プロダクトオーナー - Marie-Sophie Landrieu-Yvertは、2017年にプロダクトオーナーとして4Dプロダクトチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。彼女は1995年にESIGELEC Engineering Schoolを卒業し、IBMでエンジニアとしてのキャリアをスタートさせました。様々なプロジェクト(保守や新規のプロジェクト)に参加し、Cobolのデベロッパーとして働きました。その後、UMLデザイナーおよびJavaデベロッパーとして勤務。最近は、機能要件の分析・記述、ビジネスチームと開発チームの調整などを主に担当しています。