static public Result Run(Window parent, Table table, string tableName)
		{
			var dialog = new GenerateInsertsDialog(table, tableName) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
Example #2
0
		void Command_Table_Database_GenerateInserts(GenerateInsertsDialog.Result result)
		{
			var table = GetTable();
			var header = $"INSERT INTO {result.TableName} ({string.Join(", ", Enumerable.Range(0, table.NumColumns).Select(column => table.GetHeader(column)))}) VALUES{(result.BatchSize == 1 ? " " : Data.DefaultEnding)}";
			var output = Enumerable.Range(0, table.NumRows).Batch(result.BatchSize).Select(batch => string.Join($",{Data.DefaultEnding}", batch.Select(row => $"({string.Join(", ", result.Columns.Select(column => GetDBValue(table[row, column])))})"))).Select(val => $"{header}{val}{Data.DefaultEnding}").ToList();
			Replace(new List<Range> { FullRange }, new List<string> { string.Join("", output) });

			var offset = 0;
			var sels = new List<Range>();
			foreach (var item in output)
			{
				sels.Add(Range.FromIndex(offset, item.Length));
				offset += item.Length;
			}
			Selections.Replace(sels);
		}