yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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();
    }
  *]
}