When the RDB DAS is operating in pure dynamic mode (no user provided static DataObjects), it uses uses JDBC ResultSetMetadata to create the set of SDO Types used to construct the data graph returned as a result of a query. JDBC returns the data resulting from a query as a set of rows of column values. The associated ResultSetMetadata provides information about these values. Table name, column name, column type, etc. are all provided for each returned value.
For example, consider a database with the following table:
TABLE CUSTOMER ID INTEGER LASTNAME VARCHAR(20) ADDRESS VARCHAR(30)
The user might query the database like this:
DAS das = DAS.FACTORY.createDAS(getConnection()); Command readCustomers = das.createCommand("select * from CUSTOMER where LASTNAME = 'Williams'"); DataObject root = readCustomers.executeQuery();
The DAS returns a graph of DataObjects each of Type CUSTOMER and each instance will have three properties: (ID, LASTNAME, ADDRESS). Since this example does not pass the DAS a set of SDO Types to use, the DAS creates the Types dynamically based on the ResultSetMetadata.
The RDB DAS also allows clients to receive the results of queries as Static DataObjects (see WorkingWithStaticDataObjects).