4D v17 presenta ORDAORDA, una importante evolución en 4D que abre un mundo de nuevas posibilidades para los desarrolladores de 4D. Para saber más sobre ORDA y sus beneficios, consulte este post para ver cómo ORDA cambiará su forma de trabajar. Con el fin de guiarle a través de la exploración de ORDA, we’ve prepared una serie de entradas de blog totalmente dedicadas a los conceptos de core y características relacionadas. Esta entrada del blog detallará cómo puedes realizar operaciones CRUD en tu base de datos con ORDA. CRUD es un acrónimo de las cuatro operaciones básicas que puedes realizar con los datos: Crear, Leer, Actualizary Eliminar.
INTRODUCCIÓN
Con ORDA, se accede a los datos a través de una capa de abstracción: el datastore. Un datastore es un objeto que proporciona una interfaz a la base de datos y sus datos a través de objetos. Por ejemplo, una tabla se asigna a un objeto de clase de datos, un campo es un atributo de una clase de datos y los registros son entidades. El comando new ds devuelve una referencia en el almacén de datos de la aplicación. Si quieres saber más, echa un vistazo al artículo de resumen en la documentación.
Para guiarle en la exploración de las características de ORDA , hemos preparado un glosario de los diferentes términos y conceptos, junto con su definición.
Operaciones CRUD
Con ORDA, las operaciones de Crear, Actualizar y Eliminar no se realizan sobre una selección o un registro actual, sino sobre entidades. Esto le permite manejar varios conjuntos de entidades (al mismo tiempo) para realizar sus acciones.
ORDA – Realizar operaciones CRUD
crear
La operación Create se realiza simplemente instanciando una nueva entidad con el método new() y luego guardándola con el método save() método.
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
actualizar
La operación Update se realiza sobre una entidad utilizando el mismo método save() método.
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
borrar
La operación Delete se realiza sobre una entidad o una selección de entidades utilizando el método drop() método.
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
BLOQUEO DE ENTIDADES
Trabajar con bloqueo pesimista es posible con ORDA. En la forma clásica de codificación, el comando Locked se utiliza para comprobar si el registro actual de una tabla está bloqueado o no.
Con ORDA la entidad debe estar bloqueada antes de actualizarla. El método lock() devuelve un resultado que indica si el bloqueo se ha realizado con éxito o no. Una vez actualizada la entidad, debe ser desbloqueada con el método unlock() método.
C_OBJECT($employee;$statusLock;$statusSave;$statusUnLock)
«).
$employee :=ds.Employee.query("lastName=:1"; "Watesfirst()
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 buena noticia es que ORDA te permite elegir si quieres trabajar con bloqueo optimista o pesimista. Te daremos todos los detalles en un post dedicado a ambos modos de bloqueo. ¡Estén atentos!