diff --git a/MarketDataLib/Utility/SQLUtils.cs b/MarketDataLib/Utility/SQLUtils.cs index 943bc82..ec97694 100644 --- a/MarketDataLib/Utility/SQLUtils.cs +++ b/MarketDataLib/Utility/SQLUtils.cs @@ -25,32 +25,35 @@ namespace MarketData.Utils /// SqlConnection or null on error. public static MySqlConnection CreateMySqlConnection(string datasource,string port,string database,string username,string password) { - try + lock(typeof(SqlUtils)) { - String connectionString=null; - StringBuilder sb=new StringBuilder(); - sb.Append("server=").Append(datasource).Append("; "); - sb.Append("user id=").Append(username).Append("; "); - sb.Append("password=").Append(password).Append("; "); - sb.Append("database=").Append(database).Append("; "); - sb.Append("SslMode=").Append("None").Append("; "); - sb.Append("pooling=").Append("true").Append(";"); - sb.Append("MinimumPoolSize=").Append(MIN_POOL_SIZE).Append(";"); - sb.Append("MaximumPoolSize=").Append(MAX_POOL_SIZE).Append(";"); - sb.Append("allow user variables=").Append("true").Append("; "); - sb.Append("default command timeout=").Append("300").Append("; "); - sb.Append("connect timeout=").Append("300").Append(";"); - sb.Append("charset=").Append("utf8mb4").Append(" "); - connectionString=sb.ToString(); - MySqlConnection connection=new MySqlConnection(connectionString); - connection.Open(); - //SetConnectionCollation(connection); - return connection; - } - catch(SqlException exception) - { - MDTrace.WriteLine(LogLevel.DEBUG,exception.ToString()); - return null; + try + { + String connectionString=null; + StringBuilder sb=new StringBuilder(); + sb.Append("server=").Append(datasource).Append("; "); + sb.Append("user id=").Append(username).Append("; "); + sb.Append("password=").Append(password).Append("; "); + sb.Append("database=").Append(database).Append("; "); + sb.Append("SslMode=").Append("None").Append("; "); + sb.Append("pooling=").Append("true").Append(";"); + sb.Append("MinimumPoolSize=").Append(MIN_POOL_SIZE).Append(";"); + sb.Append("MaximumPoolSize=").Append(MAX_POOL_SIZE).Append(";"); + sb.Append("allow user variables=").Append("true").Append("; "); + sb.Append("default command timeout=").Append("300").Append("; "); + sb.Append("connect timeout=").Append("300").Append(";"); + sb.Append("charset=").Append("utf8mb4").Append(" "); + connectionString=sb.ToString(); + MySqlConnection connection=new MySqlConnection(connectionString); + connection.Open(); + //SetConnectionCollation(connection); + return connection; + } + catch(SqlException exception) + { + MDTrace.WriteLine(LogLevel.DEBUG,exception.ToString()); + return null; + } } } /// CreateSqlConnection - Creates an SQL connection. @@ -58,51 +61,37 @@ namespace MarketData.Utils /// SqlConnection or null on error. public static MySqlConnection CreateMySqlConnection(DataSourceEx datasource) { - try + lock(typeof(SqlUtils)) { - String connectionString=null; - StringBuilder sb=new StringBuilder(); - sb.Append("server=").Append(datasource.Datasource).Append("; "); - sb.Append("user id=").Append(datasource.Username).Append("; "); - sb.Append("password=").Append(datasource.Password).Append("; "); - sb.Append("database=").Append(datasource.Database).Append("; "); - sb.Append("SslMode=").Append("None").Append("; "); - sb.Append("pooling=").Append("true").Append(";"); - sb.Append("allow user variables=").Append("true").Append("; "); - sb.Append("default command timeout=").Append("300").Append("; "); - sb.Append("connect timeout=").Append("300").Append(";"); - sb.Append("MinimumPoolSize=").Append(MIN_POOL_SIZE).Append(";"); - sb.Append("MaximumPoolSize=").Append(MAX_POOL_SIZE).Append(";"); - sb.Append("charset=").Append("utf8mb4").Append(" "); - connectionString=sb.ToString(); - MySqlConnection connection=new MySqlConnection(connectionString); - connection.Open(); - //SetConnectionCollation(connection); - return connection; - } - catch(SqlException exception) - { - MDTrace.WriteLine(LogLevel.DEBUG,exception.ToString()); - return null; + try + { + String connectionString=null; + StringBuilder sb=new StringBuilder(); + sb.Append("server=").Append(datasource.Datasource).Append("; "); + sb.Append("user id=").Append(datasource.Username).Append("; "); + sb.Append("password=").Append(datasource.Password).Append("; "); + sb.Append("database=").Append(datasource.Database).Append("; "); + sb.Append("SslMode=").Append("None").Append("; "); + sb.Append("pooling=").Append("true").Append(";"); + sb.Append("allow user variables=").Append("true").Append("; "); + sb.Append("default command timeout=").Append("300").Append("; "); + sb.Append("connect timeout=").Append("300").Append(";"); + sb.Append("MinimumPoolSize=").Append(MIN_POOL_SIZE).Append(";"); + sb.Append("MaximumPoolSize=").Append(MAX_POOL_SIZE).Append(";"); + sb.Append("charset=").Append("utf8mb4").Append(" "); + connectionString=sb.ToString(); + MySqlConnection connection=new MySqlConnection(connectionString); + connection.Open(); + return connection; + } + catch(SqlException exception) + { + MDTrace.WriteLine(LogLevel.DEBUG,exception.ToString()); + return null; + } } } -/// SetConnectionCollation - Set database connection collation. Have to do for MySql 8.0.33 -/// void. - //public static void SetConnectionCollation(MySqlConnection sqlConnection) - //{ - // MySqlCommand sqlCommand=null; - // try - // { - // sqlCommand=sqlConnection.CreateCommand(); - // sqlCommand.CommandText="SET collation_connection='utf8mb4_general_ci';"; - // sqlCommand.ExecuteNonQuery(); - // sqlCommand.Dispose(); - // } - // catch(Exception exception) - // { - // MDTrace.WriteLine(LogLevel.DEBUG,exception.ToString()); - // } - //} + public static String FormatDate(DateTime dateTime) { return Utility.DateTimeToStringYYYYHMMHDD(dateTime);