Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

DataObjectPtr root = select->executeQuery();
DataObjectPtr customer = root->getDataObject("customer\[1\]");
DataObjectList& orders = customer->getList("orders");

delete das; 

Panel

DASImpl* das = (DASImpl*) DASImpl::getFactory().createDAS(Config("CustomerOrderConfig.xml"), getConnection());
// Read some customers and related orders
CommandPtr select = das->createCommand("SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID WHERE CUSTOMER.ID = 1");

Wiki Markup

You can see that the client can work with the data graph as a set of related objects. Once the application has a handle to a customer, it can reference that customers related orders by accessing the customers "orders" property.

...

This config file specifies the primary keys of the related tables and then the relationship between them. It also provides a convenient name for the relationship. In short, this config specifies that the CUSTOMER table and ANORDER table are related via ANORDERs column named "CUSTOMER_ID" which references CUSTOMERS column named "ID". The name of the relationship is "orders"

Wiki MarkupAs a side note, the config in this example is not required since the table definitions follow a "convention" recognized by the DAS. See \ [\][WorkingWithConventions|RDB DAS CPP - WorkingWithConventions].