Un datastore est l'objet d'interface fourni par ORDA pour référencer une base de données et accéder à son modèle et à ses données. Dans 4D v17, seule la base de données courante, renvoyée par la commande ds, est disponible en tant que datastore.
Note : Les méthodes et les propriétés associées au Datastore sont détaillées dans le chapitre ORDA - DataStore du manuel Langage.
Un datastore est constitué d'un modèle et de données :
- Le modèle contient et décrit toutes les dataclasses qui composent le datastore. Il est indépendant de la base de données sous-jacente elle-même.
- Les données se réfèrent à l'information qui va être utilisée et stockée dans ce modèle. Par exemple, les noms, adresses et dates de naissance des employés sont des éléments de données que vous pouvez utiliser dans un datastore.
Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les dataclasses définies. Un datastore ne fait référence qu'à une seule base de données locale ou distante.
La commande ds renvoie une référence au datastore par défaut de l'application. Lorsque vous appelez cette commande, 4D référence automatiquement chaque table et champ de la base de données 4D en tant qu'attributs de l'objet retourné :
- Les tables correspondent aux dataclasses.
- Les champs correspondent aux attributs de stockage (storage attributes)
- Les enregistrements correspondent à des entités.
- Les relations correspondent aux attributs relationnels - les noms des liens, dans l'éditeur de structure, sont utilisés comme noms d'attributs relationnels.

Les règles suivantes sont appliquées lors de la conversion :
- Les noms des tables, des champs et des liens sont utilisés comme noms de propriétés d'objet. Si vous souhaitez utiliser la notation à point dans ORDA, assurez-vous que ces noms soient conformes aux règles générales de dénomination des objets, comme expliqué dans la section Identifiants de propriétés d'objets.
Note : La propriété "Manuel" ou "Automatique" des liens n'a aucun effet dans ORDA. - Un datastore référence uniquement les tables avec une seule clé primaire (voir Clé primaire). Les tables suivantes ne sont pas référencées :
- Les tables sans clé primaire
- Les tables avec des clés primaires composites.
- Les attributs de type BLOB ne sont pas gérés dans le datastore. Les attributs de type BLOB sont renvoyés comme Null dans les entités et ne peuvent pas être assignés.
L'objet datastore lui-même ne peut pas être copié en tant qu'objet :
$mydatastore:=OB Copy(ds)
Les propriétés du datastore sont toutefois énumérables :
ARRAY TEXT($prop;0)
OB GET PROPERTY NAMES(ds;$prop)