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()); }
/// <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())); }
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); }
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])); } }
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; }