示例#1
0
        protected override bool InternalNext()
        {
            bool found = false;

            while (_sourceTable.Next())
            {
                var currentRow = new Row(Manager, Node.DataType.RowType);
                try
                {
                    _sourceTable.Select(currentRow);

                    if (!_map.HasRow(Manager, currentRow))
                    {
                        _map.Insert(Manager, currentRow);
                        currentRow.ValuesOwned = false;
                        found = true;
                        break;
                    }
                }
                finally
                {
                    currentRow.Dispose();
                }
            }
            return(found);
        }
示例#2
0
 protected void PopulateTable()
 {
     using (ITable table = (ITable)Node.Nodes[0].Execute(Program))
     {
         Row row = new Row(Manager, DataType.RowType);
         try
         {
             while (table.Next())
             {
                 table.Select(row);
                 if (!_map.HasRow(Manager, row))
                 {
                     _map.Insert(Manager, row);                             // no validation is required because FTable will never be changed
                 }
                 row.ClearValues();
                 Program.CheckAborted();                         // Yield
             }
         }
         finally
         {
             row.Dispose();
         }
     }
 }