UntypedDataSet
---------------------------------------------------------------
Demonstrates how to use untyped ADO.Net DataSet as C1DataViewSet data source.

This sample demonstrates how to use C1DataViewSet in conjunction
with an untyped ADO.Net DataSet.
C1DataViewSet works with an untyped DataSet in so-called "in-memory"
mode, which means that C1DataViewSet doesn't perform data fetching
and committing operations, because C1DataViewSet doesn't have information
on how DataSet's DataTable(s) are mapped to the database. Thus, you should
perform data fetching and committing by some other means, e.g., using
DataAdapters.
C1DataViewSet only allows you to show and edit data from untyped DataSet tables
according to its C1DataView(s) definitions.

The sample form (Form1) contains a viewset object (c1DataViewSet1) that is 
attached to dataSet1, an untyped DataSet, with a single C1DataView having 
the following definition:
"Select * From Orders join [Order Details]"

Just after you run the project, the view is inactive (no columns, no rows),
because the underlying dataSet1 is empty.

Press the "Create Orders and Fill" button, which adds the "Orders" DataTable
to dataSet1, and fills it with data. This operation is performed by means of the
OleDbDataAdapter object (ordersDataAdapter) which operates against the Access 
NWind.mdb database. The view is still inactive, because the "Order Details"
DataTable has yet to be added in dataSet1, which is referenced in the view's 
definition.

Press "Create OrderDetails and Fill" button. Notice that the "Order Details" 
DataTable has been added to dataSet1, and it is filled with data. After this 
action, the View is still inactive, because the join specified in the View's 
definition assumes the presence of a DataRelation between joined DataTable(s).

Finally, press the "Create Relation" button, which creates a DataRelation between
the DataTables. This operation activates the View, filling it with composite rows 
based on data from the underlying DataTable(s).
