Datastore ou armazem de dados é o objeto de interface oferecido por ORDA para fazer referência a um banco de dados e acessar a seu modelo e datos. Em 4D v17, só o banco de datos local, devolvido pelo comando ds , está disponível como armazem de dados.
Nota: os métodos e propriedades relacionados com Datastore são detalhados no capítulo ORDA - DataStore do manual de Linguagem.
Um armazem de dados está feito de um modelo e dados:
- O modelo contém e descreve todas as classes de dados que compõe o armazem de dados. é independente do banco de dados subjacente em si.
- Os datos se referem à informação que vai ser usada e armazenar neste modelo. Por exemplo, os nomes, os endereços e as datas de nasciiento dos empregados são dados com os que pode trabalhar em um armazem de dados.
Quando se maneja através de código,o armazem de dados é um objeto cujas propriedades são todas as classes de dados definidas. Uma datastore faz referência apenas a um único banco de dados local ou remoto.
O comando ds devolve uma referência ao armazém de dados predeterminado da aplicação. Quando chamar a este comando, 4D referencia automaticamente a cada tabela e campo do banco de dados 4D como atributos do objeto devolvido:
- as tabelas estão mapeadas a classes de dados
- os campos são atribuidos aos atributos de armazenamento
- os registros são assignadas às entidades
- as relações são assignadas a atributos de relação: os nomes de relação, definidos no editor de Estrutura, são usados como nomes de atributos de relação.

As regras abaixo se aplicam durante a conversão:
- os nomes de tabelas, campos e relações são assignados a nomes de propriedades de objetos. Se quiser utilizar a "notação de pontos" em ORDA, tenha certeza de que esses nomes cumpram com as regras gerais de denominação de objetos, como se explica na seção identificador notação objeto.
Nota: As propriedades de relação "Manual" ou "Automatic" não têm efeito em ORDA. - Um armazém de dados apenas referencia tabelas com uma única chave principal (consulte Definir ou eliminar uma chave primária). As tabelas abaixo não estão referenciadas:
- Tabelas sem chave primária
- Tabelas com chaves primárias compostas.
- Os atributos de tipo BLOB não são gerenciados no armazém de dados. Os atributos de tipo BLOB são devolvidos como nulos nas entidades e não podem ser assignadas.
O objeto del armazém de dados em si não pode ser copiada como um objeto:
$mydatastore:=OB Copy(ds)
Entretanto, as propriedades do armazem de dados são enumeráveis: ARRAY TEXT($prop;0)
OB GET PROPERTY NAMES(ds;$prop)