Пример #1
0
        public void RightJoinTest()
        {
            Database DB = new Database(@"C:\Users\Moataz\Workspace\Software\Database Architect\Active Code\DatabaseArchitect\Southwind\Database.db.txt");

            DB.Read();
            foreach (Table T in DB.Tables)
            {
                T.ReadRecords();
            }
            Query        Q  = new Query("SELECT * FROM Projects RIGHT JOIN Grades ON GradeID=ID;");
            QueryScanner QS = new QueryScanner(Q);

            Q = QS.Scan();
            QueryParser      QP = new QueryParser(Q);
            QueryTree        QT = QP.Reorder();
            QueryExecutioner QE = new QueryExecutioner(QT, DB, null);
            Table            Ti = QE.ExecuteQuery();
        }
Пример #2
0
        public void SELECT1()
        {
            Database DB = new Database(@"C:\Users\Moataz\Workspace\Software\Database Architect\Active Code\DatabaseArchitect\Southwind\Database.db.txt");

            DB.Read();
            foreach (Table T in DB.Tables)
            {
                T.ReadRecords();
            }
            Query        Q  = new Query("SELECT Rating,Name,Rating FROM Projects WHERE Rating=90 or Name=\"Software Architect\" or Name=\"DatabaseArchitect\";");
            QueryScanner QS = new QueryScanner(Q);

            Q = QS.Scan();
            QueryParser      QP = new QueryParser(Q);
            QueryTree        QT = QP.Reorder();
            QueryExecutioner QE = new QueryExecutioner(QT, DB, null);
            Table            Ti = QE.ExecuteQuery();
        }
Пример #3
0
        static object ProcessQuery(Request Qr)
        {
            if (!(Qr.Attachment is string))
            {
                return("Invalid Query");
            }
            string Qs = Qr.Attachment as string;
            Query  Q  = new Query(Qs);

            try
            {
                QueryScanner QS = new QueryScanner(Q);
                Q = QS.Scan();

                QueryParser QP = new QueryParser(Q);
                QueryTree   Qt = QP.Reorder();

                QueryExecutioner Qexec = new QueryExecutioner(Qt, Server.Database, ServerReaders.ReadRecords);

                Table Ti = Qexec.ExecuteQuery();
                if (Qexec.AfterEffect[0])
                {
                    Server.Database.Write();
                }
                if (Qexec.AfterEffect[1])
                {
                    Qexec.Tables.Last().Write();
                }
                if (Qexec.AfterEffect[2])
                {
                    Qexec.Tables.Last().WriteRecords();
                }

                if (Ti == null)
                {
                    return(Qexec.Result);
                }
                return(Ti);
            }
            catch (Exception Ex)
            {
                return(Ex.Message);
            }
        }
Пример #4
0
        public void UpdateTest()
        {
            Database DB = new Database(@"C:\Users\Moataz\Workspace\Software\Database Architect\Active Code\DatabaseArchitect\Southwind\Database.db.txt");

            DB.Read();
            foreach (Table T in DB.Tables)
            {
                T.ReadRecords();
            }
            Query        Q  = new Query("UPDATE Projects SET ID=1, Name=\"Database Architect\", Rating=100 WHERE ID=1;");
            QueryScanner QS = new QueryScanner(Q);

            Q = QS.Scan();
            QueryParser      QP = new QueryParser(Q);
            QueryTree        QT = QP.Reorder();
            QueryExecutioner QE = new QueryExecutioner(QT, DB, null);

            QE.ExecuteQuery();
        }