| Quintiq file version 2.0 | 
| #parent: #root | 
| Method UnloadMDS | 
| { | 
|   Description: 'Unload the real dataset' | 
|   TextBody: | 
|   [* | 
|     // Unload this dataset | 
|     mdsid := MDSID::Create( this.DatasetMDSID() ); | 
|     editor := MDSEditor::Editor(); | 
|      | 
|     // If the dataset is memory only, don't unload it | 
|     allInfos := editor.ObjectInfos(); | 
|     objInfo := select( allInfos, Elements, e, e.MDSID().MDSKey() = this.DatasetMDSID() ) | 
|      | 
|     // Check the dataset storage state | 
|     if( objInfo.State() <> DMF_Utility::StorageState_MemoryOnly() ) | 
|     { | 
|       // This is async unload, so similar to load MDS, we need to wait for its reply | 
|       // refer to DMF_ConvertorDataset::HandleOnDestructed. This is to let us know for | 
|       // sure that the dataset has been unloaded before we run normal server startup | 
|       editor.UnloadMDS( mdsid ); | 
|     } | 
|     else | 
|     { | 
|       // Handle memory only dataset, for this we don't have to unload it | 
|       this.HandleMemoryOnlyDatasetFinished(); | 
|     } | 
|   *] | 
| } |