Exemplo n.º 1
0
        private void KeySpaceComboBox_DropDownOpened(object sender, EventArgs e)
        {
            KeySpaceComboBox.Items.Clear();
            string DBName = DBNameComboBox.Text;

            db = (Database)(from d in EA.Dbs where d.Name == DBName select d).FirstOrDefault();
            if (db == null)
            {
                return;
            }
            if (db.DBType == Database.eDBTypes.Cassandra)
            {
                NoSqlBase NoSqlDriver = null;
                NoSqlDriver = new GingerCassandra(db);

                List <string> keyspace = NoSqlDriver.GetKeyspaceList();
                foreach (string s in keyspace)
                {
                    KeySpaceComboBox.Items.Add(s);
                }
            }
            else if (db.DBType == Database.eDBTypes.Couchbase)
            {
                NoSqlBase NoSqlDriver = null;
                NoSqlDriver = new GingerCouchbase(db);

                List <string> keyspace = NoSqlDriver.GetKeyspaceList();
                foreach (string s in keyspace)
                {
                    KeySpaceComboBox.Items.Add(s);
                }
            }
        }
Exemplo n.º 2
0
        private void HandleNoSQLDBAction()
        {
            NoSqlBase.NoSqlBase NoSqlDriver = null;

            switch (this.DB.DBType)
            {
            case Database.eDBTypes.Cassandra:
                NoSqlDriver = new GingerCassandra(DBValidationType, DB, this);
                NoSqlDriver.PerformDBAction();

                break;

            case Database.eDBTypes.Couchbase:
                NoSqlDriver = new GingerCouchbase(DBValidationType, DB, this);
                NoSqlDriver.PerformDBAction();

                break;

            case Database.eDBTypes.MongoDb:
                NoSqlDriver = new GingerMongoDb(DBValidationType, DB, this);
                NoSqlDriver.PerformDBAction();

                break;
            }
        }
Exemplo n.º 3
0
        public List <string> GetTablesList(string Keyspace = null)
        {
            List <string> rc = new List <string>()
            {
                ""
            };

            if (MakeSureConnectionIsOpen())
            {
                try
                {
                    //if (oConn == null || oConn.State == ConnectionState.Closed) Connect();
                    if (DBType == Database.eDBTypes.Cassandra)
                    {
                        NoSqlBase.NoSqlBase NoSqlDriver = null;
                        NoSqlDriver = new GingerCassandra(this);
                        rc          = NoSqlDriver.GetTableList(Keyspace);
                    }
                    else
                    {
                        DataTable table     = oConn.GetSchema("Tables");
                        string    tableName = "";
                        foreach (DataRow row in table.Rows)
                        {
                            switch (DBType)
                            {
                            case eDBTypes.MSSQL:
                                tableName = (string)row[2];
                                break;

                            case eDBTypes.Oracle:
                                tableName = (string)row[1];
                                break;

                            case eDBTypes.MSAccess:
                                tableName = (string)row[2];
                                break;

                            case eDBTypes.DB2:
                                tableName = (string)row[2];
                                break;

                            case eDBTypes.MySQL:
                                tableName = (string)row[2];
                                break;
                            }

                            rc.Add(tableName);
                        }
                    }
                }
                catch (Exception e)
                {
                    Reporter.ToLog(eLogLevel.ERROR, "Failed to get table list for DB:" + DBType.ToString(), e);
                    throw (e);
                }
            }
            return(rc);
        }
Exemplo n.º 4
0
        public List <string> GetTablesColumns(string table)
        {
            DbDataReader  reader = null;
            List <string> rc     = new List <string>()
            {
                ""
            };

            if ((oConn == null || string.IsNullOrEmpty(table)) && (DBType != Database.eDBTypes.Cassandra))
            {
                return(rc);
            }
            if (DBType == Database.eDBTypes.Cassandra)
            {
                NoSqlBase.NoSqlBase NoSqlDriver = null;
                NoSqlDriver = new GingerCassandra(this);
                rc          = NoSqlDriver.GetColumnList(table);
            }
            else if (DBType == Database.eDBTypes.Couchbase)
            {
                NoSqlBase.NoSqlBase NoSqlDriver = null;
                NoSqlDriver = new GingerCouchbase(this);
                rc          = NoSqlDriver.GetColumnList(table);
            }
            else
            {
                try
                {
                    DbCommand command = oConn.CreateCommand();
                    // Do select with zero records
                    command.CommandText = "select * from " + table + " where 1 = 0";
                    command.CommandType = CommandType.Text;

                    reader = command.ExecuteReader();
                    // Get the schema and read the cols
                    DataTable schemaTable = reader.GetSchemaTable();
                    foreach (DataRow row in schemaTable.Rows)
                    {
                        string ColName = (string)row[0];
                        rc.Add(ColName);
                    }
                }
                catch (Exception e)
                {
                    Reporter.ToLog(eLogLevel.ERROR, "", e);
                    //Reporter.ToUser(eUserMsgKey.DbTableError, "table columns", e.Message);
                    throw (e);
                }
                finally
                {
                    reader.Close();
                }
            }
            return(rc);
        }
        public Boolean Connect(bool displayErrorPopup = false)
        {
            DbProviderFactory factory;
            string            connectConnectionString = string.Empty;

            if (Database.DBType != eDBTypes.Cassandra && Database.DBType != eDBTypes.Couchbase && Database.DBType != eDBTypes.MongoDb)
            {
                connectConnectionString = GetConnectionString();
            }
            try
            {
                switch (Database.DBType)
                {
                case eDBTypes.MSSQL:
                    oConn = new SqlConnection();
                    oConn.ConnectionString = connectConnectionString;
                    oConn.Open();
                    break;

                case eDBTypes.Oracle:
                    //TODO: Oracle connection is deprecated use another method - Switched to ODP.NET
                    //Try Catch for Connecting DB Which having Oracle Version Less then 10.2
                    try
                    {
                        oConn = WorkSpace.Instance.TargetFrameworkHelper.GetOracleConnection(connectConnectionString);
                        oConn.Open();
                        break;
                    }
                    catch (Exception e)
                    {
                        String Temp = e.Message;
                        //if (Temp.Contains ("ORA-03111"))
                        if (Temp.Contains("ORA-03111"))
                        {
                            oConn = SqlClientFactory.Instance.CreateConnection();
                            oConn.ConnectionString = "Provider=msdaora;" + connectConnectionString;
                            oConn.Open();
                            break;
                        }
                        else
                        {
                            throw e;
                        }
                    }

                case eDBTypes.MSAccess:


                    oConn = WorkSpace.Instance.TargetFrameworkHelper.GetMSAccessConnection();
                    oConn.ConnectionString = connectConnectionString;
                    oConn.Open();
                    break;

                case eDBTypes.DB2:
                    if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                    {
                        String DB2Cpath = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\GLOBAL_PROFILE", "DB2PATH", "DNE");

                        if (System.IO.Directory.Exists(DB2Cpath))
                        {
                            var DLL = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory + @"DLLs\IBM.Data.DB2.dll");

                            var class1Type = DLL.GetType("IBM.Data.DB2.DB2Connection");

                            //Now you can use reflection or dynamic to call the method. I will show you the dynamic way
                            object[] param = new object[1];
                            param[0] = connectConnectionString;
                            dynamic c = Activator.CreateInstance(class1Type, param);
                            oConn = (DbConnection)c;
                            oConn.Open();
                        }
                        else
                        {
                            throw new DllNotFoundException("DB2 Connect or IBM DB2 Drivers not installed.");
                        }
                    }
                    else
                    {
                        throw new PlatformNotSupportedException("DB2 Connections are provided only on Windows Operationg System");
                    }
                    break;

                case eDBTypes.PostgreSQL:
                    oConn = new NpgsqlConnection(connectConnectionString);
                    oConn.Open();
                    break;

                case eDBTypes.Cassandra:
                    GingerCassandra CassandraDriver = new GingerCassandra(Database);
                    bool            isConnection;
                    isConnection = CassandraDriver.Connect();
                    if (isConnection == true)
                    {
                        LastConnectionUsedTime = DateTime.Now;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }

                case eDBTypes.Couchbase:
                    GingerCouchbase CouchbaseDriver = new GingerCouchbase(Database);
                    bool            isConnectionCB;
                    isConnectionCB = CouchbaseDriver.Connect();
                    if (isConnectionCB == true)
                    {
                        LastConnectionUsedTime = DateTime.Now;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }


                case eDBTypes.MySQL:
                    oConn = new MySqlConnection();
                    oConn.ConnectionString = connectConnectionString;
                    oConn.Open();
                    break;

                case eDBTypes.MongoDb:
                    bool          isConnectionMDB;
                    GingerMongoDb MongoDriver = new GingerMongoDb(Database);
                    isConnectionMDB = MongoDriver.Connect();
                    if (isConnectionMDB == true)
                    {
                        LastConnectionUsedTime = DateTime.Now;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }

                default:
                    //not implemented
                    break;
                }
                if ((oConn != null) && (oConn.State == ConnectionState.Open))
                {
                    LastConnectionUsedTime = DateTime.Now;
                    return(true);
                }
            }
            catch (Exception e)
            {
                Reporter.ToLog(eLogLevel.ERROR, "DB connection failed, DB type: " + Database.DBType.ToString() + "; Connection String =" + HidePasswordFromString(connectConnectionString), e);
                throw (e);
            }
            return(false);
        }
Exemplo n.º 6
0
        public Boolean Connect(bool displayErrorPopup = false)
        {
            DbProviderFactory factory;
            string            connectConnectionString = string.Empty;

            if (DBType != eDBTypes.Cassandra && DBType != eDBTypes.Couchbase && DBType != eDBTypes.MongoDb)
            {
                connectConnectionString = GetConnectionString();
            }
            try
            {
                switch (DBType)
                {
                case eDBTypes.MSSQL:
                    oConn = new SqlConnection();
                    oConn.ConnectionString = connectConnectionString;
                    oConn.Open();
                    break;

                case eDBTypes.Oracle:
                    //TODO: Oracle connection is deprecated use another method - Switched to ODP.NET
                    //Try Catch for Connecting DB Which having Oracle Version Less then 10.2
                    try
                    {
                        var      DLL        = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory + @"Oracle.ManagedDataAccess.dll");
                        var      class1Type = DLL.GetType("Oracle.ManagedDataAccess.Client.OracleConnection");
                        object[] param      = new object[1];
                        param[0] = connectConnectionString;
                        dynamic c = Activator.CreateInstance(class1Type, param);
                        oConn = (DbConnection)c;
                        oConn.Open();
                        break;
                    }
                    catch (Exception e)
                    {
                        String Temp = e.Message;
                        //if (Temp.Contains ("ORA-03111"))
                        if (Temp.Contains("ORA-03111"))
                        {
                            factory = DbProviderFactories.GetFactory("System.Data.OleDb");
                            oConn   = factory.CreateConnection();
                            oConn.ConnectionString = "Provider=msdaora;" + connectConnectionString;
                            oConn.Open();
                            break;
                        }
                        else if (Temp.Contains("ORA-01017"))
                        {
                            throw e;
                        }
                        else if (!System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"Oracle.ManagedDataAccess.dll"))
                        {
                            throw new Exception(GetMissingDLLErrorDescription());
                        }
                        else
                        {
                            throw e;
                        }
                    }

                case eDBTypes.MSAccess:
                    // anything better than below?
                    // TODO: working only with mdb access97, not with accmdb
                    factory = DbProviderFactories.GetFactory("System.Data.OleDb");
                    oConn   = factory.CreateConnection();
                    oConn.ConnectionString = connectConnectionString;
                    oConn.Open();
                    break;

                case eDBTypes.DB2:

                    String DB2Cpath = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\GLOBAL_PROFILE", "DB2PATH", "DNE");

                    if (System.IO.Directory.Exists(DB2Cpath))
                    {
                        var DLL = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory + @"DLLs\IBM.Data.DB2.dll");

                        var class1Type = DLL.GetType("IBM.Data.DB2.DB2Connection");

                        //Now you can use reflection or dynamic to call the method. I will show you the dynamic way
                        object[] param = new object[1];
                        param[0] = connectConnectionString;
                        dynamic c = Activator.CreateInstance(class1Type, param);
                        oConn = (DbConnection)c;
                        oConn.Open();
                    }
                    else
                    {
                        throw new Exception("DB2 Connect or IBM DB2 Drivers not installed.");
                    }
                    break;

                case eDBTypes.PostgreSQL:
                    oConn = new NpgsqlConnection(connectConnectionString);
                    oConn.Open();
                    break;

                case eDBTypes.Cassandra:
                    GingerCassandra CassandraDriver = new GingerCassandra(this);
                    bool            isConnection;
                    isConnection = CassandraDriver.Connect();
                    if (isConnection == true)
                    {
                        LastConnectionUsedTime = DateTime.Now;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }

                case eDBTypes.Couchbase:
                    GingerCouchbase CouchbaseDriver = new GingerCouchbase(this);
                    bool            isConnectionCB;
                    isConnectionCB = CouchbaseDriver.Connect();
                    if (isConnectionCB == true)
                    {
                        LastConnectionUsedTime = DateTime.Now;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }


                case eDBTypes.MySQL:
                    oConn = new MySqlConnection();
                    oConn.ConnectionString = connectConnectionString;
                    oConn.Open();
                    break;

                case eDBTypes.MongoDb:
                    bool          isConnectionMDB;
                    GingerMongoDb MongoDriver = new GingerMongoDb(this);
                    isConnectionMDB = MongoDriver.Connect();
                    if (isConnectionMDB == true)
                    {
                        LastConnectionUsedTime = DateTime.Now;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                if ((oConn != null) && (oConn.State == ConnectionState.Open))
                {
                    LastConnectionUsedTime = DateTime.Now;
                    return(true);
                }
            }
            catch (Exception e)
            {
                Reporter.ToLog(eLogLevel.ERROR, "DB connection failed, DB type: " + DBType.ToString() + "; Connection String =" + General.HidePasswordFromString(connectConnectionString), e);
                throw (e);
            }
            return(false);
        }