Ejemplo n.º 1
0
        private void ShowContents(DBRunner runner, ISQLExecuter executer, DBConnection conn, DBTable table)
        {
            Output("Display contents of table " + table.TableName);

            Stmt_Select stmtSelect = new Stmt_Select();

            stmtSelect.AddAllColumns(table);

            ShowContents(stmtSelect, runner, executer, conn);
        }
Ejemplo n.º 2
0
        private void TestSQLBuild(ISQL builder, DBDatabase db, DBTable table)
        {
            Output("TestSQLBuild:");
            Output("");

            try
            {
                Output("Criterias:");
                ICriteria crit1 = new Crit_Match(table, "lStortTal", MatchType.Equal, 6576547634);
                ICriteria crit2 = new Crit_Match(table, "txTekst", MatchType.Different, "Bent");
                ICriteria crit3 = new Crit_Match(table, "sLilleTal", MatchType.IsNull);

                Stmt_Select stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(table);
                stmtSelect.AddCriteria(crit1);
                stmtSelect.AddCriteria(crit2);
                stmtSelect.AddCriteria(crit3);
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(table);
                stmtSelect.AddCriteria(new Crit_Or(crit1, crit2));
                stmtSelect.AddCriteria(crit3);
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(table);
                ICriteria tempCrit = new Crit_And(crit2, crit3);
                stmtSelect.AddCriteria(new Crit_Or(crit1, tempCrit));
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(table);
                stmtSelect.AddCriteria(new Crit_Or(new Crit_Or(crit1, crit2), crit3));
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(table);
                stmtSelect.AddCriteria(crit1);
                stmtSelect.AddCriteria(crit2);
                stmtSelect.AddCriteria(new Crit_In(table, "iTal", true, 3, 5, 254, 31));
                Output(builder.ToSQL(stmtSelect));

                Stmt_Select stmtSelect1 = new Stmt_Select();
                stmtSelect1.AddColumn(table, "iTal");

                stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(table);
                stmtSelect.AddCriteria(new Crit_SubQuery(table, "iTal", stmtSelect1));
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(table);
                stmtSelect.AddCriteria(new Crit_SubQuery(table, "iTal", true, stmtSelect1));
                Output(builder.ToSQL(stmtSelect));
                Output("");

                Output("Aggregates:");
                stmtSelect = new Stmt_Select();
                stmtSelect.AddColumn(table, "iTal");
                stmtSelect.Distinct = true;
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddTable(table);
                stmtSelect.AddAggregate(new Aggre_Count());
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddTable(table);
                stmtSelect.AddAggregate(new Aggre_Count(table, "iTal"));
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddTable(table);
                stmtSelect.AddAggregate(new Aggre_Max(table, "iTal"));
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddTable(table);
                stmtSelect.AddAggregate(new Aggre_Min(table, "iTal"));
                Output(builder.ToSQL(stmtSelect));
                Output("");

                Output("Create tables:");
                DBTable employees = db.AddTable("Employees");
                employees.AddColumn("Employee_ID", ColumnType.String, 2, ColumnFlag.PrimaryKey | ColumnFlag.NotNull);
                employees.AddColumn("Name", ColumnType.String, 50, ColumnFlag.NotNull);

                DBTable orders = db.AddTable("Orders");
                orders.AddColumn("Prod_ID", ColumnType.Int, ColumnFlag.PrimaryKey | ColumnFlag.NotNull);
                orders.AddColumn("Product", ColumnType.String, 50, ColumnFlag.NotNull | ColumnFlag.IndexUnique);
                orders.AddColumn("Employee_ID", ColumnType.String, 2, ColumnFlag.NotNull);

                DBTable storage = db.AddTable("Storage");
                storage.AddColumn("Storage_ID", ColumnType.Int, ColumnFlag.PrimaryKey | ColumnFlag.NotNull);
                storage.AddColumn("Prod_ID", ColumnType.Int, ColumnFlag.NotNull);
                storage.AddColumn("Count", ColumnType.Int, ColumnFlag.NotNull | ColumnFlag.IndexDesc);

                Stmt_CreateTable stmtCreate = new Stmt_CreateTable(employees);
                Output(builder.ToSQL(stmtCreate));

                stmtCreate = new Stmt_CreateTable(orders);
                Output(builder.ToSQL(stmtCreate));

                stmtCreate = new Stmt_CreateTable(storage);
                Output(builder.ToSQL(stmtCreate));
                Output("");

                Output("Joins:");
                stmtSelect = new Stmt_Select();
                stmtSelect.AddColumn(employees, "Name");
                stmtSelect.AddColumn(orders, "Product");
                stmtSelect.AddJoin(new Join_Inner(employees, "Employee_ID", orders, "Employee_ID"));
                stmtSelect.AddColumn(storage, "Count");
                stmtSelect.AddJoin(new Join_Inner(orders, "Prod_ID", storage, "Prod_ID"));
                stmtSelect.AddCriteria(new Crit_Match(storage, "Count", MatchType.Bigger, 10));
                stmtSelect.AddSort(employees, "Name", Order.Ascending);
                stmtSelect.AddSort(orders, "Product", Order.Descending);
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddColumn(employees, "Name");
                stmtSelect.AddColumn(orders, "Product");
                stmtSelect.AddJoin(new Join_Left(employees, "Employee_ID", orders, "Employee_ID"));
                Output(builder.ToSQL(stmtSelect));

                stmtSelect = new Stmt_Select();
                stmtSelect.AddColumn(employees, "Name");
                stmtSelect.AddColumn(orders, "Product");
                stmtSelect.AddJoin(new Join_Right(employees, "Employee_ID", orders, "Employee_ID"));
                Output(builder.ToSQL(stmtSelect));
                Output("");

                Output("Misc");
                DBTable employees1 = db.AddTable("Employees1");
                employees1.AddColumn("Employee_ID", ColumnType.String, 2, ColumnFlag.PrimaryKey | ColumnFlag.NotNull);
                employees1.AddColumn("Name", ColumnType.String, 50, ColumnFlag.NotNull);

                stmtSelect = new Stmt_Select();
                stmtSelect.AddAllColumns(employees);
                Stmt_Insert stmtInsert = new Stmt_Insert(employees1);
                stmtInsert.InsertFromSelect = stmtSelect;
                Output(builder.ToSQL(stmtInsert));
            }
            catch (Exception ex)
            {
                Output("TestSQLBuild failed with an exception:");
                Output(ex);
            }
            finally
            {
                Output("");
                Output("");
            }
        }