public string submitQuerySQL(string sql, out DataTable answerSet)
        {
            SqlQuery  rawQuery = new SqlQuery(sql);
            QueryType qType    = rawQuery.ProcessType();

            answerSet = null;
            switch (qType)
            {
            case QueryType.INSERT:
                var query = new SqlInsertQuery(sql);
                query.ProcessAndPopulateEachField();
                var iHandler = new InsertQueryHandler(query, underlineDatabase);
                answerSet = iHandler.HandleInsertQuery();
                break;

            case QueryType.SELECT:
                var squery   = new SqlSelectQuery(sql);
                var sHandler = new SelectQueryHandler(squery, underlineDatabase);
                answerSet = sHandler.HandleSelectSqlQuery();
                break;

            case QueryType.CREATE:
                var cquery  = new SqlCreateTableQuery(sql);
                var handler = new CreateTableHandler(cquery, underlineDatabase);
                answerSet = handler.HandleCreateTableQuery();
                break;

            default:
                break;
            }

            return("end of submitSQL function");
        }
        public void TestNormalSqlCreateTable()
        {
            string sentences = "CREATE TABLE Car (RegId int, Colour varchar(255), Mileage float)";

            SqlCreateTableQuery query = new SqlCreateTableQuery(sentences);

            Assert.IsTrue(query.TableName == "Car");
            Assert.IsTrue(query.AttributeNames.Count == 3);
            Assert.IsTrue(query.AttributeNames[0] == "RegId");
            Assert.IsTrue(query.AttributeNames[1] == "Colour");
            Assert.IsTrue(query.AttributeNames[2] == "Mileage");
            Assert.IsTrue(query.AttributeTypes[0] == "int");
            Assert.IsTrue(query.AttributeTypes[1] == "varchar(255)");
            Assert.IsTrue(query.AttributeTypes[2] == "float");
        }