public static int ResultsFromCursor(IServerCursor cursor, StringBuilder results)
        {
            DAE.Schema.IRowType rowType = ((DAE.Schema.TableType)cursor.Plan.DataType).RowType;

            ResultColumn[] resultColumns = BuildResultColumns(rowType);

            int rowCount;

            try
            {
                using (DAE.Runtime.Data.Row row = new DAE.Runtime.Data.Row(cursor.Plan.Process.ValueManager, rowType))
                {
                    while (cursor.Next())
                    {
                        cursor.Select(row);
                        ReadRow(row, resultColumns);
                    }
                }
            }
            finally
            {
                // Even if something fails (or aborts) build what we can
                rowCount = BuildResults(resultColumns, results);
            }
            return(rowCount);
        }
 private static ResultColumn[] BuildResultColumns(DAE.Schema.IRowType rowType)
 {
     ResultColumn[] result = new ResultColumn[rowType.Columns.Count];
     for (int i = 0; i < rowType.Columns.Count; i++)
     {
         result[i] = new ResultColumn(rowType.Columns[i].Name);
     }
     return(result);
 }