public static Schema CreateFromConnection(ConnectionInfo conInfo) { Schema schema = new Schema(); schema.CatalogName = conInfo.Catalog; schema.Name = conInfo.Schema; IConnectionFactory fac = null; ISqlConf sqlConf = null; if (conInfo.Type == ConnectionType.SqlServer) { fac = new SqlServerConnectionFactory(); sqlConf = new SQLServerDefaultConf(); schema.Platform = "SQLSERVER"; } else if (conInfo.Type == ConnectionType.MySql) { fac = new MySqlConnectionFactory(); sqlConf = new MySqlDefaultConf(); schema.Platform = "MYSQL"; } using (IDbConnection conn = fac.CreateConnection(conInfo)) { conn.Open(); IDatabaseExplorer dbExplorer = new DatabaseExplorer(conn, sqlConf); schema.Tables = dbExplorer.GetTables(schema).ToList<Table>(); schema.StoredProcedures = dbExplorer.GetStoredProcedures(schema).ToList<StoredProcedure>(); } return schema; }
public void CreateConnectionDb_NotNull() { var sut = new MySqlConnectionFactory(); var result = sut.CreateConnectionDb(""); Assert.NotNull(result); }
public static IDbConnection Create(Connection cn) { IDbConnection output; switch (cn.Provider) { case "sqlserver": output = new SqlServerConnectionFactory(cn).GetConnection(); break; case "mysql": output = new MySqlConnectionFactory(cn).GetConnection(); break; case "postgresql": output = new PostgreSqlConnectionFactory(cn).GetConnection(); break; case "sqlite": output = new SqLiteConnectionFactory(cn).GetConnection(); break; case "sqlce": output = new SqlCeConnectionFactory(cn).GetConnection(); break; default: throw new DataException($"Provider {cn.Provider} is not supported!"); } output.Open(); return(output); }
public void CreateDataAdapter_NotNull() { var sut = new MySqlConnectionFactory(); var result = sut.CreateDataAdapter(""); Assert.NotNull(result); }
private static async Task Main(string[] args) { await SetupAsync(); var services = new ServiceCollection(); services.AddLogging(o => o.AddConsole()); var connection = new MySqlConnectionOptions { Host = Host, Username = "******", Password = "******", Database = "test_db" }; var connFactory = new MySqlConnectionFactory(new ConnectionFactoryOptions <MySqlConnectionOptions> { Write = connection, Read = connection }); var serviceProvider = services.BuildServiceProvider(); var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); var logger = serviceProvider.GetRequiredService <ILogger <Program> >(); var testRepo = new TestRepo(connFactory, new MySqlRepositoryOptions { FailOverRetryCount = 10, LoggerFactory = loggerFactory }); logger.LogInformation("Starting..."); if (args.Contains("-write")) { while (true) { logger.LogInformation("Writing..."); await testRepo.WriteAsync("INSERT IGNORE INTO `test_table` VALUES (1);"); await Task.Delay(TimeSpan.FromSeconds(1)); } } if (args.Contains("-read")) { while (true) { logger.LogInformation("Reading..."); await testRepo.ReadAsync <int>("SELECT * FROM `test_table`;"); await Task.Delay(TimeSpan.FromSeconds(1)); } } }
/// <summary> /// 初始化MySql数据库连接工厂 /// </summary> public virtual void InitConnectionFactory() { var connectionFactory = new MySqlConnectionFactory(); #pragma warning disable 618 Database.DefaultConnectionFactory = connectionFactory; #pragma warning restore 618 }
public void InitConnectionFactory() { var connectionFactory = new MySqlConnectionFactory(); //TODO fix compilation warning (below) #pragma warning disable 0618 Database.DefaultConnectionFactory = connectionFactory; }
public static void CreateConnection_WhenInvoked_ReturnsConnectionInClosedState() { var factory = new MySqlConnectionFactory("Server=127.0.0.1;"); using var connection = factory.CreateConnection(); Assert.That(connection.State, Is.EqualTo(ConnectionState.Closed)); }
public void GetReadConnection() { var factory = new MySqlConnectionFactory(new ConnectionFactoryOptions <MySqlConnectionOptions> { Read = new MySqlConnectionOptions() }); var readConn = factory.GetReadConnection(); Assert.NotNull(readConn); }
public void GetWriteConnection() { var factory = new MySqlConnectionFactory(new ConnectionFactoryOptions <MySqlConnectionOptions> { Write = new MySqlConnectionOptions() }); var writeConn = factory.GetWriteConnection(); Assert.NotNull(writeConn); }
public static void Create(out IMySqlConnectionFactory conn) { conn = new MySqlConnectionFactory(GetConnectionString(), GetDatabaseNameString()); var sqlCreate = $"create database if not exists `mysqlcoretest`"; using (var c = conn.GetAsync("sys").Result) { c.ExecuteAsync(sqlCreate).Wait(); } }
public static DbConnection CreateConnection(string host, string user, string password, string database, int port, bool pooling, int minPoolSize, int maxPoolSize) { var pools = string.Format(";Min Pool Size={0};Max Pool Size={1}", minPoolSize, maxPoolSize); var connectionString = "Server=" + host + ";User Id=" + user + ";Port=" + port + ";" + "Password="******";Database=" + database + ";Allow Zero Datetime=True;" + "Pooling=" + pooling + ";CharSet=utf8"; if (pooling) { connectionString += pools; } var factory = new MySqlConnectionFactory(); return(factory.CreateConnection(connectionString)); }
private static DbConnection BuildConnection(IConnectionSettings connectionSettings) { if (null == connectionSettings) { connectionSettings = ConnectionSettings; } switch (connectionSettings.ProviderInvariantName) { case DataConfiguration.SqlServerCompactProviderInvariantName: { var connectionFactory = new SqlCeConnectionFactory(DataConfiguration.SqlServerCompactProviderInvariantName); return(connectionFactory.CreateConnection(connectionSettings.ConnectionString)); } case DataConfiguration.SqlServerProviderInvariantName: { var connectionFactory = new SqlConnectionFactory(); return(connectionFactory.CreateConnection(connectionSettings.ConnectionString)); } case DataConfiguration.MySqlProviderInvariantName: { var connectionFactory = new MySqlConnectionFactory(); return(connectionFactory.CreateConnection(connectionSettings.ConnectionString)); } case DataConfiguration.PostgreSqlProviderInvariantName: { var connectionFactory = new NpgsqlConnectionFactory(); return(connectionFactory.CreateConnection(connectionSettings.ConnectionString)); } case DataConfiguration.OracleDBProviderInvariantName: { var connectionFactory = new OracleConnectionFactory(); return(connectionFactory.CreateConnection(connectionSettings.ConnectionString)); } default: throw new InvalidOperationException("connectionSettings.ProviderInvariantName == " + connectionSettings.ProviderInvariantName); } }
private static Guid CreateDatabase() { var database = Guid.NewGuid(); var connectionString = string.Format("Server=localhost;Uid={0};Pwd={1};", ConfigurationManager.AppSettings["MySQLUser"], ConfigurationManager.AppSettings["MySQLPassword"]); var factory = new MySqlConnectionFactory { ConnectionString = connectionString }; using (var connection = factory.CreateConnection()) { connection.Open(); var sql = string.Format("CREATE DATABASE `{0}`", database); connection.Execute(sql); sql = string.Format("USE `{0}`", database); connection.Execute(sql); } return(database); }
private static async Task SetupAsync() { var connFactory = new MySqlConnectionFactory(new ConnectionFactoryOptions <MySqlConnectionOptions> { Write = new MySqlConnectionOptions { Host = Host, Username = RootUser, Password = RootPwd } }); var testRepo = new TestRepo(connFactory); await testRepo.WriteAsync("CREATE SCHEMA IF NOT EXISTS test_db; " + "CREATE TABLE IF NOT EXISTS `test_db`.`test_table` (id int PRIMARY KEY);" + "CREATE USER IF NOT EXISTS 'testusr'@'%' IDENTIFIED BY 'testpw';" + "GRANT INSERT,SELECT ON test_db.test_table TO 'testusr'@'%';" + "FLUSH PRIVILEGES;" ); }
static void Main(string[] args) { MySqlConnectionFactory factory = new MySqlConnectionFactory(); MySqlConnection connection = factory.CreateConnection(null); connection.Open(); MySqlCommand command = new MySqlCommand("select * from athletes", connection); MySqlDataAdapter dataAdapter = new MySqlDataAdapter(command); DataSet dataSet = new DataSet(); dataAdapter.Fill(dataSet); var dataR = command.ExecuteReader(); if (dataR.Read()) { string name = dataR.GetString(1); Console.Write(name); } Console.Write(connection); Console.Read(); }
public BudgetStore(MySqlConnectionFactory mySqlConnectionFactory) { _mySqlConnectionFactory = mySqlConnectionFactory; }
public void Integration() { var builder = new ContainerBuilder(); builder.RegisterModule(new RootModule(@"Files\Shorthand.xml")); var container = builder.Build(); // CORRECT DATA AND INITIAL LOAD using (var cn = new SqlServerConnectionFactory(InputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(2, cn.Execute(@" UPDATE [Order Details] SET UnitPrice = 14.40, Quantity = 42 WHERE OrderId = 10253 AND ProductId = 39; UPDATE Orders SET CustomerID = 'CHOPS', Freight = 22.98 WHERE OrderId = 10254; ")); } var root = ResolveRoot(container, TestFile, true); var response = new PipelineAction(root).Execute(); Assert.AreEqual(200, response.Code); Assert.AreEqual(string.Empty, response.Content); using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(2155, cn.ExecuteScalar <int>("SELECT COUNT(*) FROM NorthWindStar;")); Assert.AreEqual(2155, cn.ExecuteScalar <int>("SELECT Inserts FROM NorthWindControl WHERE Entity = 'Order Details' AND BatchId = 1 LIMIT 1;")); } // FIRST DELTA, NO CHANGES root = ResolveRoot(container, TestFile, false); response = new PipelineAction(root).Execute(); Assert.AreEqual(200, response.Code); Assert.AreEqual(string.Empty, response.Content); using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(2155, cn.ExecuteScalar <int>("SELECT COUNT(*) FROM NorthWindStar;")); Assert.AreEqual(0, cn.ExecuteScalar <int>("SELECT Inserts+Updates+Deletes FROM NorthWindControl WHERE Entity = 'Order Details' AND BatchId = 9 LIMIT 1;")); } // CHANGE 2 FIELDS IN 1 RECORD IN MASTER TABLE THAT WILL CAUSE CALCULATED FIELD TO BE UPDATED TOO using (var cn = new SqlServerConnectionFactory(InputConnection).GetConnection()) { cn.Open(); const string sql = @"UPDATE [Order Details] SET UnitPrice = 15, Quantity = 40 WHERE OrderId = 10253 AND ProductId = 39;"; Assert.AreEqual(1, cn.Execute(sql)); } root = ResolveRoot(container, TestFile, false); response = new PipelineAction(root).Execute(); Assert.AreEqual(200, response.Code); Assert.AreEqual(string.Empty, response.Content); using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(1, cn.ExecuteScalar <int>("SELECT Updates FROM NorthWindControl WHERE Entity = 'Order Details' AND BatchId = 17 LIMIT 1;")); Assert.AreEqual(15.0, cn.ExecuteScalar <decimal>("SELECT OrderDetailsUnitPrice FROM NorthWindStar WHERE OrderDetailsOrderId= 10253 AND OrderDetailsProductId = 39;")); Assert.AreEqual(40, cn.ExecuteScalar <int>("SELECT OrderDetailsQuantity FROM NorthWindStar WHERE OrderDetailsOrderId= 10253 AND OrderDetailsProductId = 39;")); Assert.AreEqual(15.0 * 40, cn.ExecuteScalar <int>("SELECT OrderDetailsExtendedPrice FROM NorthWindStar WHERE OrderDetailsOrderId= 10253 AND OrderDetailsProductId = 39;")); } // CHANGE 1 RECORD'S CUSTOMERID AND FREIGHT ON ORDERS TABLE using (var cn = new SqlServerConnectionFactory(InputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(1, cn.Execute("UPDATE Orders SET CustomerID = 'VICTE', Freight = 20.11 WHERE OrderId = 10254;")); } root = ResolveRoot(container, TestFile, false); response = new PipelineAction(root).Execute(); Assert.AreEqual(200, response.Code); Assert.AreEqual(string.Empty, response.Content); using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(1, cn.ExecuteScalar <int>("SELECT Updates FROM NorthWindControl WHERE Entity = 'Orders' AND BatchId = 26;")); Assert.AreEqual("VICTE", cn.ExecuteScalar <string>("SELECT OrdersCustomerId FROM NorthWindStar WHERE OrderDetailsOrderId= 10254;")); Assert.AreEqual(20.11, cn.ExecuteScalar <decimal>("SELECT OrdersFreight FROM NorthWindStar WHERE OrderDetailsOrderId= 10254;")); } }
public MySqlCategoriesStore(MySqlConnectionFactory mySqlConnectionFactory) { _mySqlConnectionFactory = mySqlConnectionFactory; }
public MySqlReportsProvider(MySqlConnectionFactory mySqlConnectionFactory) { _mySqlConnectionFactory = mySqlConnectionFactory; }
public static DbConnection GetMySqlConnection(string connectionString) { var connectionFactory = new MySqlConnectionFactory(); return(connectionFactory.CreateConnection(connectionString)); }
/// <summary> /// Initialize connection factory /// </summary> public virtual void InitConnectionFactory() { var connectionFactory = new MySqlConnectionFactory(); #pragma warning disable 0618 Database.DefaultConnectionFactory = connectionFactory; }
public static DbConnection GetMySqlConnection(string connectionString) { var connectionFactory = new MySqlConnectionFactory(); return connectionFactory.CreateConnection(connectionString); }
public MySqlTagStore(MySqlConnectionFactory mySqlConnectionFactory) { _mySqlConnectionFactory = mySqlConnectionFactory; }
public MySqlTransactionStore(MySqlConnectionFactory mySqlConnectionFactory) { _mySqlConnectionFactory = mySqlConnectionFactory; }
//[Ignore("Needs local sql server and mysql databases and you have to set the password (above)")] public void Integration() { var logger = new ConsoleLogger(LogLevel.Debug); // CORRECT DATA AND INITIAL LOAD using (var cn = new SqlServerConnectionFactory(InputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(2, cn.Execute(@" UPDATE [Order Details] SET UnitPrice = 14.40, Quantity = 42 WHERE OrderId = 10253 AND ProductId = 39; UPDATE Orders SET CustomerID = 'CHOPS', Freight = 22.98 WHERE OrderId = 10254; ")); } using (var outer = new ConfigurationContainer().CreateScope(TestFile + $"?Mode=init&Password={Password}", logger)) { var process = outer.Resolve <Process>(); using (var inner = new Container(new MySqlModule(), new SqlServerModule(), new JintTransformModule()).CreateScope(process, logger)) { var controller = inner.Resolve <IProcessController>(); controller.Execute(); } } using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(2155, cn.ExecuteScalar <int>("SELECT COUNT(*) FROM NorthWindStar;")); Assert.AreEqual(2155, cn.ExecuteScalar <int>("SELECT Inserts FROM NorthWindControl WHERE Entity = 'Order Details' AND BatchId = 1 LIMIT 1;")); } // FIRST DELTA, NO CHANGES using (var outer = new ConfigurationContainer().CreateScope(TestFile + $"?Password={Password}", logger)) { var process = outer.Resolve <Process>(); using (var inner = new Container(new MySqlModule(), new SqlServerModule(), new JintTransformModule()).CreateScope(process, logger)) { var controller = inner.Resolve <IProcessController>(); controller.Execute(); } } using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(2155, cn.ExecuteScalar <int>("SELECT COUNT(*) FROM NorthWindStar;")); Assert.AreEqual(0, cn.ExecuteScalar <int>("SELECT Inserts+Updates+Deletes FROM NorthWindControl WHERE Entity = 'Order Details' AND BatchId = 9 LIMIT 1;")); } // CHANGE 2 FIELDS IN 1 RECORD IN MASTER TABLE THAT WILL CAUSE CALCULATED FIELD TO BE UPDATED TOO using (var cn = new SqlServerConnectionFactory(InputConnection).GetConnection()) { cn.Open(); const string sql = @"UPDATE [Order Details] SET UnitPrice = 15, Quantity = 40 WHERE OrderId = 10253 AND ProductId = 39;"; Assert.AreEqual(1, cn.Execute(sql)); } using (var outer = new ConfigurationContainer().CreateScope(TestFile + $"?Password={Password}", logger)) { var process = outer.Resolve <Process>(); using (var inner = new Container(new MySqlModule(), new SqlServerModule(), new JintTransformModule()).CreateScope(process, logger)) { var controller = inner.Resolve <IProcessController>(); controller.Execute(); } } using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(1, cn.ExecuteScalar <int>("SELECT Updates FROM NorthWindControl WHERE Entity = 'Order Details' AND BatchId = 17 LIMIT 1;")); Assert.AreEqual(15.0M, cn.ExecuteScalar <decimal>("SELECT OrderDetailsUnitPrice FROM NorthWindStar WHERE OrderDetailsOrderId= 10253 AND OrderDetailsProductId = 39;")); Assert.AreEqual(40, cn.ExecuteScalar <int>("SELECT OrderDetailsQuantity FROM NorthWindStar WHERE OrderDetailsOrderId= 10253 AND OrderDetailsProductId = 39;")); Assert.AreEqual(15.0 * 40, cn.ExecuteScalar <int>("SELECT OrderDetailsExtendedPrice FROM NorthWindStar WHERE OrderDetailsOrderId= 10253 AND OrderDetailsProductId = 39;")); } // CHANGE 1 RECORD'S CUSTOMERID AND FREIGHT ON ORDERS TABLE using (var cn = new SqlServerConnectionFactory(InputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(1, cn.Execute("UPDATE Orders SET CustomerID = 'VICTE', Freight = 20.11 WHERE OrderId = 10254;")); } using (var outer = new ConfigurationContainer().CreateScope(TestFile + $"?Password={Password}", logger)) { var process = outer.Resolve <Process>(); using (var inner = new Container(new MySqlModule(), new SqlServerModule(), new JintTransformModule()).CreateScope(process, logger)) { var controller = inner.Resolve <IProcessController>(); controller.Execute(); } } using (var cn = new MySqlConnectionFactory(OutputConnection).GetConnection()) { cn.Open(); Assert.AreEqual(1, cn.ExecuteScalar <int>("SELECT Updates FROM NorthWindControl WHERE Entity = 'Orders' AND BatchId = 26;")); Assert.AreEqual("VICTE", cn.ExecuteScalar <string>("SELECT OrdersCustomerId FROM NorthWindStar WHERE OrderDetailsOrderId= 10254;")); Assert.AreEqual(20.11M, cn.ExecuteScalar <decimal>("SELECT OrdersFreight FROM NorthWindStar WHERE OrderDetailsOrderId= 10254;")); } }
public MySqlVendorStore(MySqlConnectionFactory mySqlConnectionFactory) { _mySqlConnectionFactory = mySqlConnectionFactory; }