Exemplo n.º 1
0
        public void InsertParser_ParseTableName()
        {
            //arrange
            var insertParser = new InsertParser(_mockSchemaFetcher.Object);

            string dml      = "insert into myTable VALUES ('one', 'two', 'three')";
            string expected = "mytable";

            //act
            string tableName = insertParser.ParseTableName(dml);

            //assert
            Assert.AreEqual(expected, tableName.ToLower());
        }
Exemplo n.º 2
0
        /// <summary>
        /// 新增一条或一组记录
        /// </summary>
        /// <param name="table">数据表名称</param>
        /// <param name="dataArray">需要插入的记录</param>
        /// <returns>返回新增条数</returns>
        public int Insert <T>(string table, params T[] dataArray)
        {
            if (dataArray == null || dataArray.Length <= 0)
            {
                return(0);
            }
            var entities = JsonParser.ConvertEntities(dataArray);
            var sql      = new InsertParser().Parse(table, entities[0]);

            return(this.Execute(sql, entities.Select((source) =>
            {
                return new InsertModel(source);
            }).ToArray()));
        }
Exemplo n.º 3
0
        public static Executor GetInstance(string databaseName = Constants.FILE_NAME)
        {
            if (_instance == null)
            {
                lock (_lockObject)
                {
                    if (databaseName != null)
                    {
                        if (!File.Exists(databaseName))
                        {
                            using (File.Create(databaseName));
                        }
                    }

                    var updateParser    = new UpdateParser();
                    var stringParser    = new StringParser();
                    var reader          = new Reader();
                    var writer          = new Writer(reader);
                    var lockManager     = new LockManager(writer, reader);
                    var schemaFetcher   = new SchemaFetcher(reader);
                    var selectParser    = new SelectParser();
                    var insertParser    = new InsertParser(schemaFetcher);
                    var generalParser   = new GeneralParser();
                    var createParser    = new CreateParser();
                    var predicateParser = new PredicateParser();

                    var interpreter = new Interpreter(
                        selectParser,
                        insertParser,
                        updateParser,
                        schemaFetcher,
                        generalParser,
                        createParser,
                        stringParser,
                        lockManager,
                        reader,
                        predicateParser);

                    _instance = new Executor(interpreter);
                }
            }

            return(_instance);
        }
Exemplo n.º 4
0
        public void TestParserSingleValue()
        {
            string           query  = "INSERT INTO tbl_name (a,b,c) VALUES(1,2,3)";
            List <TSQLToken> tokens = TSQLTokenizer.ParseTokens(query);
            InsertParser     parser = new InsertParser(tokens);

            Assert.AreEqual("tbl_name", parser.table_name);

            string[] column_name = { "a", "b", "c" };
            Assert.IsTrue(parser.column_names.SequenceEqual(column_name));

            string[][] values =
            {
                new string[] { "1", "2", "3" }
            };
            for (int i = 0; i < parser.row_values.Length; i++)
            {
                Assert.IsTrue(parser.row_values[i].SequenceEqual(values[i]));
            }
        }
Exemplo n.º 5
0
 public Interpreter(SelectParser selectParser,
                    InsertParser insertParser,
                    UpdateParser updateParser,
                    SchemaFetcher schemaFetcher,
                    GeneralParser generalParser,
                    CreateParser createParser,
                    StringParser stringParser,
                    LockManager lockManager,
                    Reader reader,
                    PredicateParser predicateParser)
 {
     _selectParser    = selectParser;
     _insertParser    = insertParser;
     _updateParser    = updateParser;
     _schemaFetcher   = schemaFetcher;
     _generalParser   = generalParser;
     _createParser    = createParser;
     _stringParser    = stringParser;
     _lockManager     = lockManager;
     _reader          = reader;
     _predicateParser = predicateParser;
 }