*********** A DataSource corresponds to the datasource tag in GFD files. It defines a query or source. It contains DataSets, but not actual data. A DataSet is a traversable set of RecordSets. It has no GFD equivalent, although most of GFBlock's functionality may consist of calls to DataSets. A RecordSet is a set of the fields contained in a record. A RecordSet knows the current state of itself and all its fields. A DataSet holds RecordSets. A DataSource may hold several DataSets (i.e., detail datasets in a master/detail relationship). A master RecordSet contains a reference to its detail DataSets. To commit all changes, you would first .post() all DataSets (recursively) and then do a transactional .commit(). This method allows for multiple detail sets to be maintained at once. *********** DataSource: getDataSet(): addDetailDataSource() : Adds a DataSource in a master/detail relationship masterRecordChanged() : Called when master in master/detail is updated commit() : rollback() : *********** DataSet: | +-- DataSourceQuery extends DataSource | +-- DataSourceObject extends DataSource | +-- DataSourceSQL extends DataSource isFirstRecord() : Returns 1=At first record, 0= getRecord() : returns 0=No records in memory, #=Current record # setRecord() : move to record #, returns 1=New record loaded, 0=invalid # nextRecord() : returns 1=New record loaded, 0=No more records prevRecord() : returns 1=New record loaded, 0=At first record firstRecord() : returns 1=at first record, 0=No records loaded lastRecord() : returns 1=at last record, 0=No records loaded deleteRecord(): insertRecord(): isPending() : Returns 1=DataSource has uncommitted changes post() : Post changes to the database current : Link to current record (RecordSet) *********** RecordSet: isPending() : Returns 1=Record has uncommitted changes isDeleted() : Returns 1=Record is pending a deletion isModified() : Returns 1=Record is pending an update isInserted() : Returns 1=Record is pending an insertion getField(f) : Returns current value of "field" setField(f) : Sets current value of "field" isFieldModified(f) : Returns 1=Field has been modified getUpdateDict() : Returns a dict containing field->changes Will be used by the DBDriver to generate insert or update statements. dbIdentifier : Contains the identifier used by the DB drivers setDetailDataSet() : Sets the dataSet associated with this master record