Example #1
0
        private void AddRows(ref DataTableExporter csv, string table, ref List <string> seentables, string where,
                             bool alphaHeaderCols, int depth = 0)
        {
            if (seentables.Contains(table))
            {
                return;
            }

            //get data
            var tableValues = RunQuery(table, @where);

            //insert
            var i = 0;

            foreach (var r in tableValues)
            {
                if (depth == 0)
                {
                    seentables = new List <string>();
                }
                seentables.Add(table);

                csv.AddRow(r, table);
                var ts = GetParsedForeignKeyTables(r.Keys.ToList(), table);
                //recurse with these tables
                foreach (var t in ts)
                {
                    var key    = t.KeyName;
                    var val    = r[key];
                    var lwhere = $" where {key} = {val}";
                    AddRows(ref csv, t.TableName, ref seentables, lwhere, alphaHeaderCols, depth + 1);
                }

                if (depth == 0)
                {
                    //finalise
                    csv.AddPage();
                }

                i++;
            }
        }
Example #2
0
        private void AddRows(ref DataTableExporter csv, string table, ref List<string> seentables, string where,
            bool alphaHeaderCols, int depth = 0)
        {
            if (seentables.Contains(table))
                return;

            //get data
            var tableValues = RunQuery(table, @where);

            //insert
            var i = 0;
            foreach (var r in tableValues)
            {
                if (depth == 0)
                {
                    seentables = new List<string>();
                }
                seentables.Add(table);

                csv.AddRow(r, table);
                var ts = GetParsedForeignKeyTables(r.Keys.ToList(), table);
                //recurse with these tables
                foreach (var t in ts)
                {
                    var key = t.KeyName;
                    var val = r[key];
                    var lwhere = $" where {key} = {val}";
                    AddRows(ref csv, t.TableName, ref seentables, lwhere, alphaHeaderCols, depth + 1);
                }

                if (depth == 0)
                {
                    //finalise
                    csv.AddPage();
                }

                i++;
            }
        }