Using OQL

In DObject O/R Mapping persistence layer, in order to get object and object-set, you can query in the way of using OQL that based on native language.

l  Using OQL conditional expression query to get object:

var

  customer : ICustomer;

begin

  customer := TCustomer.GetByCriteria(ObjectManager,

    OQL.Criteria(NW.Customer.CustomerID).Equal('ALFKI') );

end;

l  The OQL conditional expression above can be complex at will as follows:

var

  qryOrders : ISelectQuery;

  customer : ICustomer;

begin

  qryOrders := TSelectQuery.Create;

  qryOrders

    .Select(NW.Order.CustomerID)

    .From(NW.Order)

    .Where( OQL.Criteria(NW.Order.ShipCity).EQ('Macrobject City') );

 

  customer := TCustomer.GetByCriteria(ObjectManager,

    OQL.Criteria(NW.Customer.CustomerID).In_(qryOrders) );

end;

l  The way to get object-set is similar, a sample is as follows:

var

  qryOrders : ISelectQuery;

  customers : IObjectSet;

begin

  qryOrders := TSelectQuery.Create;

  qryOrders

    .Select(NW.Order.CustomerID)

    .From(NW.Order)

    .Where( OQL.Criteria(NW.Order.ShipCity).EQ('Macrobject City') );

 

  customers := ObjectManager.GetObjectSet(NW.Customer,

    OQL.Criteria(NW.Customer.CustomerID).In_(qryOrders) );

  // ...

end;

Related Topics

Get Object and Object-set