Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod DeleteDatasetCopy (LibOpt_SnapshotReplannableCopyDataset snapshot) 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    This method deletes the dataset that is attached to the `snapshot` variable.  
 | 
    If the dataset is still being created, then it is not possible to delete the dataset yet. In this case, the `snapshot.HasToBeDeleted` flag is set to `true`.  
 | 
    By setting this flag, the `LibOpt_DatasetCopyConditional::HandleSuccessfulDatasetCopy` method will automatically delete the dataset after the dataset has been created. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    // evr3 Jun-4-2020 (created) 
 | 
    if( snapshot.HasCreatedDataset() ) 
 | 
    { 
 | 
      infos := MDSEditor::Editor().ObjectInfos(); 
 | 
      datasetinfo := infos.Find( snapshot.DatasetName() ); 
 | 
      mdsid := datasetinfo.MDSID(); 
 | 
       
 | 
      if( snapshot.IsMemoryOnly() ) 
 | 
      { 
 | 
        MDSEditor::Editor().UnloadMDS( mdsid );   
 | 
      } 
 | 
      else       
 | 
      // Note: we cannot use state := datasetinfo.State(), 
 | 
      // because datasetinfo.State() for a standalone storage state can still be equal to memory only. 
 | 
      { 
 | 
        MDSEditor::Editor().DeleteMDS( mdsid );    
 | 
      } 
 | 
      snapshot.IsDatasetDeletedByOptimizer( true );  
 | 
      // The dataset is deleted, so the dataset doesn't have a state anymore.  
 | 
      // Please consider using 'not snapshot.IsQuickDatasetCopy()' if you want to know if a dataset copy was created in a MemoryOnly state. 
 | 
      snapshot.IsMemoryOnly( false );  
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      // Dataset does not exist yet. Flag dataset for later deletion, see LibOpt_SnapshotReplannableCopyDataset::HandleSuccessfulDatasetCopy.  
 | 
      snapshot.HasToBeDeleted( true ); 
 | 
    } 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |