[Quantproject-developers] QuantProject/b2_DataAccess ConnectionProvider.cs, 1.5, 1.6
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2008-12-30 00:08:49
|
Update of /cvsroot/quantproject/QuantProject/b2_DataAccess In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv15656/b2_DataAccess Modified Files: ConnectionProvider.cs Log Message: Now a property public static DbConnection DbConnection is provided: it can be either an OleDbConnection or a MySqlDbConnection Index: ConnectionProvider.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b2_DataAccess/ConnectionProvider.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ConnectionProvider.cs 2 Jul 2006 19:27:32 -0000 1.5 --- ConnectionProvider.cs 30 Dec 2008 00:08:37 -0000 1.6 *************** *** 3,7 **** ConnectionProvider.cs ! Copyright (C) 2003 Glauco Siliprandi --- 3,7 ---- ConnectionProvider.cs ! Copyright (C) 2008 Glauco Siliprandi *************** *** 19,27 **** along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ using System; using System.Data.OleDb; ! using QuantProject.DataAccess; namespace QuantProject.DataAccess --- 19,29 ---- along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ using System; + using System.Data.Common; using System.Data.OleDb; ! ! using MySql.Data.MySqlClient; namespace QuantProject.DataAccess *************** *** 32,35 **** --- 34,133 ---- public class ConnectionProvider { + private static DbConnection dbConnection; + + #region DbConnection + #region getDbConnection + + #region getAccessDbConnection + + #region getAccessConnectionString + private static string getMdbPath() + { + string mdbPath = ConfigManager.MdbPath; + return mdbPath; + } + private static string getAccessConnectionString() + { + string mdbPath = ConnectionProvider.getMdbPath(); + string connectionString = + @"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" + + mdbPath + + @";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"; + return connectionString; + } + #endregion getAccessConnectionString + + private static DbConnection getAccessDbConnection() + { + string connectionString = ConnectionProvider.getAccessConnectionString(); + DbConnection dbConnection = new OleDbConnection( connectionString ); + try + { + dbConnection.Open(); + } + catch(Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.ToString()); + dbConnection = null; + } + return dbConnection; + } + #endregion getAccessDbConnection + + #region getMySQLDbConnection + private static DbConnection getMySQLDbConnection() + { + DbConnection mySQLDbConnection = + new MySqlConnection( ConfigManager.MySqlConnectionString ); + return mySQLDbConnection; + } + #endregion getMySQLDbConnection + + private static DbConnection getDbConnection() + { + DbConnection dbConnection = null; + if ( ConfigManager.IsChosenDbTypeAccess ) + dbConnection = ConnectionProvider.getAccessDbConnection(); + else + // current db type is MySQL + dbConnection = ConnectionProvider.getMySQLDbConnection(); + return dbConnection; + } + #endregion getDbConnection + private static void updateDatabaseStructure() + { + DataBaseVersionManager dataBaseVersionManager = new DataBaseVersionManager(dbConnection); + dataBaseVersionManager.UpdateDataBaseStructure(); + } + /// <summary> + /// Returns an OleDbConnection to the database + /// </summary> + public static DbConnection DbConnection + { + get + { + if ( dbConnection == null ) + { + ConnectionProvider.dbConnection = + ConnectionProvider.getDbConnection(); + ConnectionProvider.updateDatabaseStructure(); + } + return dbConnection; + } + } + #endregion DbConnection + + public static DbType DbType + { + get + { + DbType dbType = DbType.Undefined; + if ( ConnectionProvider.DbConnection is OleDbConnection ) + dbType = DbType.Access; + if ( ConnectionProvider.DbConnection is MySqlConnection ) + dbType = DbType.MySql; + return dbType; + } + } public ConnectionProvider() { *************** *** 38,74 **** // } - private static OleDbConnection oleDbConnection; - - /// <summary> - /// Returns an OleDbConnection to the database - /// </summary> - public static OleDbConnection OleDbConnection - { - get - { - if ( oleDbConnection == null ) - { - DataBaseLocator dataBaseLocator = new DataBaseLocator("MDB"); - string mdbPath = dataBaseLocator.Path; - string connectionString = - @"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" + - mdbPath + - @";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"; - oleDbConnection = new OleDbConnection( connectionString ); - try{ - oleDbConnection.Open(); - } - catch(Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.ToString()); - oleDbConnection = null; - } - DataBaseVersionManager dataBaseVersionManager = new DataBaseVersionManager(oleDbConnection); - dataBaseVersionManager.UpdateDataBaseStructure(); - - } - return oleDbConnection; - } - } } } --- 136,139 ---- |