Exemple #1
0
        private string GetDefaultDatabase(OleDbConnection cn, dbDriver driver)
        {
            string databaseName = string.Empty;

            switch (driver)
            {
            //case dbDriver.Access:

            //	int i = cn.DataSource.LastIndexOf(@"\");

            //	if(i == -1)
            //		databaseName = cn.DataSource;
            //	else
            //		databaseName = cn.DataSource.Substring(++i);

            //	break;

            default:

                databaseName = cn.Database;
                break;
            }

            return(databaseName);
        }
Exemple #2
0
        private void OpenDataLinkDialog(string connection, dbDriver driver, string caption)
        {
            DataLinksClass dl = new MSDASC.DataLinksClass();

            ADODB.Connection conn = new ADODB.ConnectionClass();
            conn.ConnectionString = connection;

            object objCn = (object)conn;

            //	dl.PromptNew();
            if (dl.PromptEdit(ref objCn))
            {
                this.Text = "MyMeta Browser " + caption;

                string error = "";
                try
                {
                    myMeta = new dbRoot();
                    myMeta.Connect(driver, conn.ConnectionString);
                }
                catch (Exception ex)
                {
                    error = ex.Message;
                }

                this.InitializeTree(myMeta, error);
            }
        }
Exemple #3
0
        private void ConnectUsingOleDb(dbDriver driver, string connectionString)
        {
            var cn = new OleDbConnection(connectionString.Replace("\"", ""));

            cn.Open();
            _defaultDatabase = GetDefaultDatabase(cn, driver);
            cn.Close();
        }
Exemple #4
0
 private void ConnectUsingOleDb(dbDriver driver, string connectionString)
 {
     try
     {
         OleDbConnection cn = new OleDbConnection(connectionString.Replace("\"", ""));
         cn.Open();
         this._defaultDatabase = GetDefaultDatabase(cn, driver);
         cn.Close();
     }
     catch (OleDbException Ex)
     {
         throw Ex;
     }
 }
Exemple #5
0
        private static string GetDefaultDatabase(DbConnection cn, dbDriver driver)
        {
            string databaseName;

            switch (driver)
            {
            case dbDriver.Access:

                int i = cn.DataSource.LastIndexOf(@"\");

                databaseName = i == -1 ? cn.DataSource : cn.DataSource.Substring(++i);

                break;

            default:

                databaseName = cn.Database;
                break;
            }

            return(databaseName);
        }
Exemple #6
0
        private void Reset()
        {
            UserData = null;

            IgnoreCase           = true;
            requiredDatabaseName = false;
            requiresSchemaName   = false;
            StripTrailingNulls   = false;
            TrailingNull         = ((char)0x0).ToString();

            ClassFactory = null;

            _showSystemData = false;

            _driver                 = dbDriver.None;
            _driverString           = "NONE";
            _databases              = null;
            _connectionString       = "";
            _theConnection          = new OleDbConnection();
            _isConnected            = false;
            _parsedConnectionString = null;
            _defaultDatabase        = "";

            // Language
            _languageMappingFileName = string.Empty;
            _language    = string.Empty;
            _languageDoc = null;
            LanguageNode = null;

            UserData = new XmlDocument();
            UserData.AppendChild(UserData.CreateNode(XmlNodeType.Element, "MyMeta", null));

            // DbTarget
            _dbTargetMappingFileName = string.Empty;
            _dbTarget    = string.Empty;
            _dbTargetDoc = null;
            DbTargetNode = null;
        }
Exemple #7
0
		private string GetDefaultDatabase(OleDbConnection cn, dbDriver driver)
		{
			string databaseName = string.Empty;

			switch(driver)
			{
				case dbDriver.Access:

					int i = cn.DataSource.LastIndexOf(@"\");

					if(i == -1) 
						databaseName = cn.DataSource;
					else
						databaseName = cn.DataSource.Substring(++i);

					break;

				default:

					databaseName = cn.Database;
					break;
			}

			return databaseName;
		}
Exemple #8
0
 private void ConnectUsingOleDb(dbDriver driver, string connectionString)
 {
     OleDbConnection cn = new OleDbConnection(connectionString.Replace("\"", ""));
     cn.Open();
     this._defaultDatabase = GetDefaultDatabase(cn, driver);
     cn.Close();
 }
Exemple #9
0
		/// <summary>
		/// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration.  
        /// </summary>
        /// <param name="driver">The driver enumeration for you DBMS system</param>
        /// <param name="pluginName">The name of the plugin</param>
		/// <param name="connectionString">A valid connection string for you DBMS</param>
		/// <returns></returns>
		public bool Connect(dbDriver driver, string pluginName, string connectionString)
		{
			Reset();

            try
            {
                string dbName;
                int index;

                this._connectionString = connectionString.Replace("\"", "");
                this._driver = driver;

                switch (_driver)
                {
                    case dbDriver.SQL:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.SQL;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = true;
                        ClassFactory = new MyMeta.Sql.ClassFactory();
                        break;

                    case dbDriver.Oracle:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.Oracle;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = true;
                        ClassFactory = new MyMeta.Oracle.ClassFactory();
                        break;

                    case dbDriver.Access:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.Access;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.Access.ClassFactory();
                        break;

                    case dbDriver.MySql:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.MySql;
                        this.StripTrailingNulls = true;
                        this.requiredDatabaseName = true;
                        ClassFactory = new MyMeta.MySql.ClassFactory();
                        break;

                    case dbDriver.MySql2:

                        using (MySqlConnection mysqlconn = new MySqlConnection(_connectionString))
                        {
                            mysqlconn.Close();
                            mysqlconn.Open();
                            this._defaultDatabase = mysqlconn.Database;
                        }

                        this._driverString = MyMetaDrivers.MySql2;
                        this.StripTrailingNulls = true;
                        this.requiredDatabaseName = true;
                        ClassFactory = new MyMeta.MySql5.ClassFactory();
                        break;

                    case dbDriver.DB2:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.DB2;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.DB2.ClassFactory();
                        break;

                    case dbDriver.ISeries:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.ISeries;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.ISeries.ClassFactory();
                        break;

                    case dbDriver.Pervasive:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.Pervasive;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.Pervasive.ClassFactory();
                        break;

                    case dbDriver.PostgreSQL:

                        using (NpgsqlConnection cn = new Npgsql.NpgsqlConnection(_connectionString))
                        {
                            cn.Open();
                            this._defaultDatabase = cn.Database;
                        }

                        this._driverString = MyMetaDrivers.PostgreSQL;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.PostgreSQL.ClassFactory();
                        break;

                    case dbDriver.PostgreSQL8:

                        using (NpgsqlConnection cn8 = new Npgsql.NpgsqlConnection(_connectionString))
                        {
                            cn8.Open();
                            this._defaultDatabase = cn8.Database;
                        }

                        this._driverString = MyMetaDrivers.PostgreSQL8;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.PostgreSQL8.ClassFactory();
                        break;

                    case dbDriver.Firebird:

                        using (FbConnection cn1 = new FirebirdSql.Data.FirebirdClient.FbConnection(_connectionString))
                        {
                            cn1.Open();
                            dbName = cn1.Database;
                        }

                        try
                        {
                            index = dbName.LastIndexOfAny(new char[] { '\\' });
                            if (index >= 0)
                            {
                                this._defaultDatabase = dbName.Substring(index + 1);
                            }
                        }
                        catch { }

                        this._driverString = MyMetaDrivers.Firebird;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.Firebird.ClassFactory();
                        break;

                    case dbDriver.Interbase:

                        using (FbConnection cn2 = new FirebirdSql.Data.FirebirdClient.FbConnection(_connectionString))
                        {
                            cn2.Open();
                            this._defaultDatabase = cn2.Database;
                        }

                        this._driverString = MyMetaDrivers.Interbase;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.Firebird.ClassFactory();
                        break;

                    case dbDriver.SQLite:

                        using (SQLiteConnection sqliteConn = new SQLiteConnection(_connectionString))
                        {
                            sqliteConn.Open();
                            dbName = sqliteConn.Database;

                            if (!string.IsNullOrEmpty(dbName)) this._defaultDatabase = dbName;
                        }
                        this._driverString = MyMetaDrivers.SQLite;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.SQLite.ClassFactory();
                        break;
#if !IGNORE_VISTA
                    case dbDriver.VistaDB:

                        try
                        {
                            MyMeta.VistaDB.MetaHelper mh = new MyMeta.VistaDB.MetaHelper();
                            dbName = mh.LoadDatabases(_connectionString);

                            if (dbName == "") return false;

                            this._defaultDatabase = dbName;

                            this._driverString = MyMetaDrivers.VistaDB;
                            this.StripTrailingNulls = false;
                            this.requiredDatabaseName = false;
                            ClassFactory = new MyMeta.VistaDB.ClassFactory();
                        }
                        catch
                        {
                            throw new Exception("Invalid VistaDB connection or VistaDB not installed");
                        }

                        break;
#endif
                    case dbDriver.Advantage:

                        ConnectUsingOleDb(_driver, _connectionString);
                        this._driverString = MyMetaDrivers.Advantage;
                        this.StripTrailingNulls = false;
                        this.requiredDatabaseName = false;
                        ClassFactory = new MyMeta.Advantage.ClassFactory();
                        string[] s = this._defaultDatabase.Split('.');
                        this._defaultDatabase = s[0];
                        break;

                    case dbDriver.Plugin:

                        IMyMetaPlugin plugin;
                        using (IDbConnection connection = this.GetConnectionFromPlugin(pluginName, _connectionString, out plugin))
                        {
                            if (connection != null)
                                connection.Open();
                            dbName = connection.Database;
                            if (!string.IsNullOrEmpty(plugin.DefaultDatabase) || string.IsNullOrEmpty(dbName)) dbName = plugin.DefaultDatabase;
                            if (!string.IsNullOrEmpty(dbName)) this._defaultDatabase = dbName;
                        }
                        this._driverString = pluginName;
                        //this.StripTrailingNulls = plugin.StripTrailingNulls;
                        //this.requiredDatabaseName = plugin.RequiredDatabaseName;
                        ClassFactory = new MyMeta.Plugin.ClassFactory(plugin);
                        break;

                    case dbDriver.None:

                        this._driverString = MyMetaDrivers.None;
                        break;
                }
            }
            catch (OleDbException ex)
            {
                this._lastConnectionException = ex;
                foreach (OleDbError error in ex.Errors)
                {
                    if (this._lastConnectionError != string.Empty) this._lastConnectionError += Environment.NewLine;
                    this._lastConnectionError += ex;
                }
            }
            catch (Exception ex)
            {
                this._lastConnectionException = ex;
                this._lastConnectionError = ex.Message;
            }

			_isConnected = true;
			return true;
		}
Exemple #10
0
        /// <summary>
		/// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration.  
		/// </summary>
		/// <param name="driver">The driver enumeration for you DBMS system</param>
		/// <param name="connectionString">A valid connection string for you DBMS</param>
		/// <returns></returns>
        public bool Connect(dbDriver driver, string connectionString)
        {
            return Connect(driver, string.Empty, connectionString);
        }
Exemple #11
0
        private void Reset()
        {
            UserData = null;

            IgnoreCase = true;
            requiredDatabaseName = false;
            requiresSchemaName = false;
            StripTrailingNulls = false;
            TrailingNull = ((char) 0x0).ToString();

            ClassFactory = null;

            _showSystemData = false;

            _driver = dbDriver.None;
            _driverString = "NONE";
            _databases = null;
            _connectionString = "";
            _theConnection = new OleDbConnection();
            _isConnected = false;
            _parsedConnectionString = null;
            _defaultDatabase = "";

            // Language
            _languageMappingFileName = string.Empty;
            _language = string.Empty;
            _languageDoc = null;
            LanguageNode = null;

            UserData = new XmlDocument();
            UserData.AppendChild(UserData.CreateNode(XmlNodeType.Element, "MyMeta", null));

            // DbTarget
            _dbTargetMappingFileName = string.Empty;
            _dbTarget = string.Empty;
            _dbTargetDoc = null;
            DbTargetNode = null;
        }
Exemple #12
0
        public bool Connect(dbDriver driver, string pluginName, string connectionString)
        {
            Reset();

            string dbName;
            int    index;

            this._connectionString = connectionString.Replace("\"", "");
            this._driver           = driver;

            switch (_driver)
            {
            case dbDriver.SQL:

                ConnectUsingOleDb(_driver, _connectionString);
                this._driverString        = esMetaDrivers.SQL;
                this.StripTrailingNulls   = false;
                this.requiredDatabaseName = true;
                ClassFactory = new Sql.ClassFactory();
                break;

            case dbDriver.Oracle:

                ConnectUsingOleDb(_driver, _connectionString);
                this._driverString        = esMetaDrivers.Oracle;
                this.StripTrailingNulls   = false;
                this.requiredDatabaseName = true;
                ClassFactory = new Oracle.ClassFactory();
                break;

            //case dbDriver.Access:

            //	ConnectUsingOleDb(_driver, _connectionString);
            //                this._driverString = esMetaDrivers.Access;
            //	this.StripTrailingNulls = false;
            //	this.requiredDatabaseName = false;
            //                ClassFactory = new Access.ClassFactory();
            //	break;

            case dbDriver.MySql:

                this.ConnectToMySql();
                break;

            case dbDriver.PostgreSQL:

                this.ConnectToPostgreSql();
                break;

            case dbDriver.Plugin:

                IPlugin plugin;
                using (IDbConnection connection = this.GetConnectionFromPlugin(pluginName, _connectionString, out plugin))
                {
                    if (connection != null && connection.State != ConnectionState.Open)
                    {
                        connection.Open();
                    }
                    dbName = connection.Database;
                }
                this._driverString        = pluginName;
                this.StripTrailingNulls   = plugin.StripTrailingNulls;
                this.requiredDatabaseName = plugin.RequiredDatabaseName;
                ClassFactory = new Plugin.ClassFactory(plugin);
                break;

            case dbDriver.None:

                this._driverString = esMetaDrivers.None;
                break;
            }

            _isConnected = true;
            return(true);
        }
Exemple #13
0
 public bool Connect(dbDriver driver, string connectionString)
 {
     return(Connect(driver, string.Empty, connectionString));
 }
		private void OpenDataLinkDialog(string connection, dbDriver driver, string caption)
		{
			DataLinksClass dl = new MSDASC.DataLinksClass();

			ADODB.Connection conn = new ADODB.ConnectionClass();
			conn.ConnectionString = connection;

			object objCn = (object) conn;

			//	dl.PromptNew();
			if(dl.PromptEdit(ref objCn))
			{				
				this.Text = "MyMeta Browser " + caption;

				string error = "";
				try
				{
					myMeta = new dbRoot();
					myMeta.Connect(driver, conn.ConnectionString);
				}
				catch(Exception ex)
				{
					error = ex.Message;
				}

				this.InitializeTree(myMeta, error);
			}
		}
Exemple #15
0
        /// <summary>
        /// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration.
        /// </summary>
        /// <param name="driver">The driver enumeration for you DBMS system</param>
        /// <param name="pluginName">The name of the plugin</param>
        /// <param name="connectionString">A valid connection string for you DBMS</param>
        /// <returns></returns>
        public bool Connect(dbDriver driver, string pluginName, string connectionString)
        {
            Reset();

            string dbName;
            int    index;

            _connectionString = connectionString.Replace("\"", "");
            _driver           = driver;

            #region not fully implemented yet

/*
 *          InternalDriver drv = InternalDriver.Get(settings.DbDriver);
 *          if (drv != null)
 *          {
 *              this._driverString = drv.DriverId;
 *              this.StripTrailingNulls = drv.StripTrailingNulls;
 *              this.requiredDatabaseName = drv.RequiredDatabaseName;
 *
 *              IDbConnection con = null;
 *                      try
 *                      {
 *                  ClassFactory = drv.CreateBuildInClass();
 *                  if (ClassFactory != null)
 *                      con = ClassFactory.CreateConnection();
 *                  else
 *                  {
 *                      IMyMetaPlugin plugin = drv.CreateMyMetaPluginClass();
 *                      if (plugin != null)
 *                      {
 *                          MyMetaPluginContext pluginContext = new MyMetaPluginContext(drv.DriverId, this._connectionString);
 *                          plugin.Initialize(pluginContext);
 *                          con = plugin.NewConnection;
 *                      }
 *                  }
 *                  if (con != null)
 *                  {
 *                      con.ConnectionString = this._connectionString;
 *                                  // cn.Open();
 *                  }
 *                              this._defaultDatabase = drv.GetDataBaseName(cn);
 *                      }
 *                      catch(Exception Ex)
 *                      {
 *                              throw Ex;
 *                      } finally {
 *                  if (con != null)
 *                                  cn.Close();
 *              }
 *          }
 *          else
 *          {
 *              // Error
 *          }
 */

            #endregion not fully implemented yet

            switch (_driver)
            {
            case dbDriver.SQL:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.SQL;
                StripTrailingNulls   = false;
                requiredDatabaseName = true;
                ClassFactory         = new ClassFactory();
                break;

            case dbDriver.Oracle:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.Oracle;
                StripTrailingNulls   = false;
                requiredDatabaseName = true;
                ClassFactory         = new Oracle.ClassFactory();
                break;

            case dbDriver.Access:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.Access;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new Access.ClassFactory();
                break;

            case dbDriver.MySql:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.MySql;
                StripTrailingNulls   = true;
                requiredDatabaseName = true;
                ClassFactory         = new MySql.ClassFactory();
                break;

            case dbDriver.MySql2:

                using (var mysqlconn = new MySqlConnection(_connectionString))
                {
                    mysqlconn.Close();
                    mysqlconn.Open();
                    _defaultDatabase = mysqlconn.Database;
                }

                _driverString        = MyMetaDrivers.MySql2;
                StripTrailingNulls   = true;
                requiredDatabaseName = true;
                ClassFactory         = new MySql5.ClassFactory();
                break;

            case dbDriver.DB2:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.DB2;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new DB2.ClassFactory();
                break;

            case dbDriver.ISeries:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.ISeries;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new ISeries.ClassFactory();
                break;

            case dbDriver.Pervasive:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.Pervasive;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new Pervasive.ClassFactory();
                break;

            case dbDriver.PostgreSQL:

                using (var cn = new NpgsqlConnection(_connectionString))
                {
                    cn.Open();
                    _defaultDatabase = cn.Database;
                }

                _driverString        = MyMetaDrivers.PostgreSQL;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new PostgreSQL.ClassFactory();
                break;

            case dbDriver.PostgreSQL8:

                using (var cn8 = new NpgsqlConnection(_connectionString))
                {
                    cn8.Open();
                    _defaultDatabase = cn8.Database;
                }

                _driverString        = MyMetaDrivers.PostgreSQL8;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new PostgreSQL8.ClassFactory();
                break;

            case dbDriver.Firebird:

                using (var cn1 = new FbConnection(_connectionString))
                {
                    cn1.Open();
                    dbName = cn1.Database;
                }

                try
                {
                    index = dbName.LastIndexOfAny(new[] { '\\' });
                    if (index >= 0)
                    {
                        _defaultDatabase = dbName.Substring(index + 1);
                    }
                }
                catch {}

                _driverString        = MyMetaDrivers.Firebird;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new Firebird.ClassFactory();
                break;

            case dbDriver.Interbase:

                using (var cn2 = new FbConnection(_connectionString))
                {
                    cn2.Open();
                    _defaultDatabase = cn2.Database;
                }

                _driverString        = MyMetaDrivers.Interbase;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new Firebird.ClassFactory();
                break;

            case dbDriver.SQLite:

                using (var sqliteConn = new SQLiteConnection(_connectionString))
                {
                    sqliteConn.Open();
                    dbName = sqliteConn.Database;
                }
                _driverString        = MyMetaDrivers.SQLite;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new SQLite.ClassFactory();
                break;

#if !IGNORE_VISTA
            case dbDriver.VistaDB:

                try
                {
                    var mh = new MetaHelper();
                    dbName = mh.LoadDatabases(_connectionString);

                    if (dbName == "")
                    {
                        return(false);
                    }

                    _defaultDatabase = dbName;

                    _driverString        = MyMetaDrivers.VistaDB;
                    StripTrailingNulls   = false;
                    requiredDatabaseName = false;
                    ClassFactory         = new VistaDB.ClassFactory();
                }
                catch
                {
                    throw new Exception("Invalid VistaDB connection or VistaDB not installed");
                }

                break;
#endif
            case dbDriver.Advantage:

                ConnectUsingOleDb(_driver, _connectionString);
                _driverString        = MyMetaDrivers.Advantage;
                StripTrailingNulls   = false;
                requiredDatabaseName = false;
                ClassFactory         = new Advantage.ClassFactory();
                string[] s = _defaultDatabase.Split('.');
                _defaultDatabase = s[0];
                break;

            case dbDriver.Plugin:
                break;

            case dbDriver.None:

                _driverString = MyMetaDrivers.None;
                break;
            }

            _isConnected = true;
            return(true);
        }
Exemple #16
0
        private static string GetDefaultDatabase(DbConnection cn, dbDriver driver)
        {
            string databaseName;

            switch (driver)
            {
                case dbDriver.Access:

                    int i = cn.DataSource.LastIndexOf(@"\");

                    databaseName = i == -1 ? cn.DataSource : cn.DataSource.Substring(++i);

                    break;

                default:

                    databaseName = cn.Database;
                    break;
            }

            return databaseName;
        }
Exemple #17
0
        /// <summary>
        /// Same as <see cref="Connect(string, string)"/>(string, string) only this uses an enumeration.  
        /// </summary>
        /// <param name="driver">The driver enumeration for you DBMS system</param>
        /// <param name="pluginName">The name of the plugin</param>
        /// <param name="connectionString">A valid connection string for you DBMS</param>
        /// <returns></returns>
        public bool Connect(dbDriver driver, string pluginName, string connectionString)
        {
            Reset();

            string dbName;
            int index;

            _connectionString = connectionString.Replace("\"", "");
            _driver = driver;

            #region not fully implemented yet

/*
            InternalDriver drv = InternalDriver.Get(settings.DbDriver);
            if (drv != null)
            {
                this._driverString = drv.DriverId;
                this.StripTrailingNulls = drv.StripTrailingNulls;
                this.requiredDatabaseName = drv.RequiredDatabaseName;

                IDbConnection con = null;
		        try
		        {
                    ClassFactory = drv.CreateBuildInClass();
                    if (ClassFactory != null)
                        con = ClassFactory.CreateConnection();
                    else
                    {
                        IMyMetaPlugin plugin = drv.CreateMyMetaPluginClass();
                        if (plugin != null)
                        {
                            MyMetaPluginContext pluginContext = new MyMetaPluginContext(drv.DriverId, this._connectionString);
                            plugin.Initialize(pluginContext);
                            con = plugin.NewConnection;
                        }
                    }
                    if (con != null)
                    {
                        con.ConnectionString = this._connectionString;
			            // cn.Open();
                    }
			        this._defaultDatabase = drv.GetDataBaseName(cn);
		        }
		        catch(Exception Ex)
		        {
			        throw Ex;
		        } finally {
                    if (con != null)
			            cn.Close();
                }
            }
            else
            {
                // Error
            }           
*/

            #endregion not fully implemented yet

            switch (_driver)
            {
                case dbDriver.SQL:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.SQL;
                    StripTrailingNulls = false;
                    requiredDatabaseName = true;
                    ClassFactory = new ClassFactory();
                    break;

                case dbDriver.Oracle:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.Oracle;
                    StripTrailingNulls = false;
                    requiredDatabaseName = true;
                    ClassFactory = new Oracle.ClassFactory();
                    break;

                case dbDriver.Access:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.Access;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new Access.ClassFactory();
                    break;

                case dbDriver.MySql:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.MySql;
                    StripTrailingNulls = true;
                    requiredDatabaseName = true;
                    ClassFactory = new MySql.ClassFactory();
                    break;

                case dbDriver.MySql2:

                    using (var mysqlconn = new MySqlConnection(_connectionString))
                    {
                        mysqlconn.Close();
                        mysqlconn.Open();
                        _defaultDatabase = mysqlconn.Database;
                    }

                    _driverString = MyMetaDrivers.MySql2;
                    StripTrailingNulls = true;
                    requiredDatabaseName = true;
                    ClassFactory = new MySql5.ClassFactory();
                    break;

                case dbDriver.DB2:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.DB2;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new DB2.ClassFactory();
                    break;

                case dbDriver.ISeries:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.ISeries;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new ISeries.ClassFactory();
                    break;

                case dbDriver.Pervasive:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.Pervasive;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new Pervasive.ClassFactory();
                    break;

                case dbDriver.PostgreSQL:

                    using (var cn = new NpgsqlConnection(_connectionString))
                    {
                        cn.Open();
                        _defaultDatabase = cn.Database;
                    }

                    _driverString = MyMetaDrivers.PostgreSQL;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new PostgreSQL.ClassFactory();
                    break;

                case dbDriver.PostgreSQL8:

                    using (var cn8 = new NpgsqlConnection(_connectionString))
                    {
                        cn8.Open();
                        _defaultDatabase = cn8.Database;
                    }

                    _driverString = MyMetaDrivers.PostgreSQL8;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new PostgreSQL8.ClassFactory();
                    break;

                case dbDriver.Firebird:

                    using (var cn1 = new FbConnection(_connectionString))
                    {
                        cn1.Open();
                        dbName = cn1.Database;
                    }

                    try
                    {
                        index = dbName.LastIndexOfAny(new[] {'\\'});
                        if (index >= 0)
                        {
                            _defaultDatabase = dbName.Substring(index + 1);
                        }
                    }
                    catch {}

                    _driverString = MyMetaDrivers.Firebird;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new Firebird.ClassFactory();
                    break;

                case dbDriver.Interbase:

                    using (var cn2 = new FbConnection(_connectionString))
                    {
                        cn2.Open();
                        _defaultDatabase = cn2.Database;
                    }

                    _driverString = MyMetaDrivers.Interbase;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new Firebird.ClassFactory();
                    break;

                case dbDriver.SQLite:

                    using (var sqliteConn = new SQLiteConnection(_connectionString))
                    {
                        sqliteConn.Open();
                        dbName = sqliteConn.Database;
                    }
                    _driverString = MyMetaDrivers.SQLite;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new SQLite.ClassFactory();
                    break;
#if !IGNORE_VISTA
                case dbDriver.VistaDB:

                    try
                    {
                        var mh = new MetaHelper();
                        dbName = mh.LoadDatabases(_connectionString);

                        if (dbName == "") return false;

                        _defaultDatabase = dbName;

                        _driverString = MyMetaDrivers.VistaDB;
                        StripTrailingNulls = false;
                        requiredDatabaseName = false;
                        ClassFactory = new VistaDB.ClassFactory();
                    }
                    catch
                    {
                        throw new Exception("Invalid VistaDB connection or VistaDB not installed");
                    }

                    break;
#endif
                case dbDriver.Advantage:

                    ConnectUsingOleDb(_driver, _connectionString);
                    _driverString = MyMetaDrivers.Advantage;
                    StripTrailingNulls = false;
                    requiredDatabaseName = false;
                    ClassFactory = new Advantage.ClassFactory();
                    string[] s = _defaultDatabase.Split('.');
                    _defaultDatabase = s[0];
                    break;

                case dbDriver.Plugin:
                    break;

                case dbDriver.None:

                    _driverString = MyMetaDrivers.None;
                    break;
            }

            _isConnected = true;
            return true;
        }