Esempio n. 1
0
        public static Collection <DBSchemaInfo> GetTargetSchemas(dbOrigen who)
        {
            string schemas = null;

            string[] aSchemas = {};
            Collection <DBSchemaInfo> schemaList = new Collection <DBSchemaInfo>();

            switch (who)
            {
            case dbOrigen.ORA:
                schemas = AdministradorPreferencias.Read(PrefsBD.ORATargetSchemas);
                break;

            case dbOrigen.PGSQL:
                schemas = AdministradorPreferencias.Read(PrefsBD.PGSQLTargetSchemas);
                break;
            }

            if (schemas != null && schemas.Trim() != string.Empty)
            {
                aSchemas = schemas.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string s in aSchemas)
                {
                    schemaList.Add(new DBSchemaInfo(who, s.Trim()));
                }
            }
            return(schemaList);
        }
Esempio n. 2
0
        private static DBColumnInfo ColInfoFromName(dbOrigen source, string qualifiedName)
        {
            string[] names        = qualifiedName.Split(new char[] { '.' });
            string   schemaName   = string.Empty;
            string   relationName = string.Empty;
            string   columnName   = string.Empty;

            switch (source)
            {
            case dbOrigen.PGSQL:
                //En PostgreSQL el esquema por defecto es 'public'
                schemaName = (names.Length > 2) ? names[0] : "public";
                break;

            case dbOrigen.ORA:
                //En ORACLE el nombre debe ser completamente calificado
                //puesto que no existe el concepto de ESQUEMA como categoría.
                //En ORACLE ESQUEMA = NOMBRE_PROPIETARIO. Por tanto, si no
                //conocemos el nombre del propietario, la estructura DBColumnInfo
                //quedará incompleta.
                schemaName = (names.Length > 2) ? names[0] : string.Empty;
                break;
            }
            relationName = (names.Length > 2) ? names[1] : names[0];
            columnName   = (names.Length > 2) ? names[2] : names[1];
            DBSchemaInfo   schema   = new DBSchemaInfo(source, schemaName);
            DBRelationInfo relation = new DBRelationInfo(schema, relationName, dbRelationType.Unknown);

            return(new DBColumnInfo(relation, columnName, string.Empty, string.Empty));
        }
Esempio n. 3
0
 private void CrearRamaEsquemas(TreeNode raiz)
 {
     if (raiz.GetNodeCount(false) == 0)
     {
         dbOrigen who = (dbOrigen)raiz.Parent.Tag;
         foreach (DBSchemaInfo s in DBUtils.GetTargetSchemas(who))
         {
             TreeNode RT = new TreeNode("Tablas");
             RT.Tag = TipoRaiz.RaizTablas;
             TreeNode RV = new TreeNode("Vistas");
             RV.Tag = TipoRaiz.RaizVistas;
             TreeNode E = new TreeNode(s.Name);
             E.Tag = s;
             E.Nodes.AddRange(new TreeNode[] { RT, RV });
             raiz.Nodes.Add(E);
         }
     }
 }
Esempio n. 4
0
        public static void ExceptionBox(DataTable dt, dbOrigen who)
        {
            if (dt.TableName == "Excepcion")
            {
                string msg     = (string)dt.Rows[0]["Mensaje"];
                string caption = "Error";
                switch (who)
                {
                case dbOrigen.ORA:
                    caption = "Mensaje de error del servidor ORACLE";
                    break;

                case dbOrigen.PGSQL:
                    caption = "Mensaje de error del servidor PostgreSQL";
                    break;
                }
                System.Windows.Forms.MessageBox.Show(msg, caption, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            }
        }
Esempio n. 5
0
        public static bool TestConnection(dbOrigen source)
        {
            bool r = false;

            switch (source)
            {
            case dbOrigen.Ninguno:
                r = false;
                System.Windows.Forms.MessageBox.Show("No se ha especificado origen de datos.",
                                                     "Error al conectar a la base de datos",
                                                     System.Windows.Forms.MessageBoxButtons.OK,
                                                     System.Windows.Forms.MessageBoxIcon.Error);
                break;

            case dbOrigen.ORA:
                OracleConnection oraCn = new OracleConnection(GetORACnString());
                try
                {
                    oraCn.Open();
                    oraCn.Close();
                    r = true;
                }
                catch (OracleException e)
                {
                    r = false;
                    System.Windows.Forms.MessageBox.Show(e.Message,
                                                         "Error al conectar a la base de datos",
                                                         System.Windows.Forms.MessageBoxButtons.OK,
                                                         System.Windows.Forms.MessageBoxIcon.Error);
                }
                catch (Exception e)
                {
                    r = false;
                    System.Windows.Forms.MessageBox.Show(e.Message,
                                                         "Error al conectar a la base de datos",
                                                         System.Windows.Forms.MessageBoxButtons.OK,
                                                         System.Windows.Forms.MessageBoxIcon.Error);
                }
                finally
                {
                    if (oraCn.State != 0)
                    {
                        oraCn.Close();
                    }
                }
                break;

            case dbOrigen.PGSQL:
                NpgsqlConnection pgCn = new NpgsqlConnection(GetPGSQLCnString());
                try
                {
                    pgCn.Open();
                    pgCn.Close();
                    r = true;
                }
                catch (NpgsqlException e)
                {
                    r = false;
                    System.Windows.Forms.MessageBox.Show(e.Message,
                                                         "Error al conectar a la base de datos",
                                                         System.Windows.Forms.MessageBoxButtons.OK,
                                                         System.Windows.Forms.MessageBoxIcon.Error);
                }
                catch (Exception e)
                {
                    r = false;
                    System.Windows.Forms.MessageBox.Show(e.Message,
                                                         "Error al conectar a la base de datos",
                                                         System.Windows.Forms.MessageBoxButtons.OK,
                                                         System.Windows.Forms.MessageBoxIcon.Error);
                }
                finally
                {
                    if (pgCn.State != 0)
                    {
                        pgCn.Close();
                    }
                }
                break;
            }
            return(r);
        }
Esempio n. 6
0
        public static DataSet ExecuteNonQuery(dbOrigen source, string sSQL, object[] aParam)
        {
            int     i       = 1;
            int     numRows = 0;
            DataSet oDs     = new DataSet();

            switch (source)
            {
            case dbOrigen.Ninguno:
                FillExceptionDataSet(oDs, "No se ha especificado origen de datos.");
                break;

            case dbOrigen.ORA:
                OracleConnection oraCn = new OracleConnection(GetORACnString());
                try
                {
                    oraCn.Open();
                    OracleCommand oraCmd = new OracleCommand(RemoveSemiColon(sSQL), oraCn);
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            oraCmd.Parameters.Add(new OracleParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    numRows = oraCmd.ExecuteNonQuery();
                    FillInfoDataSet(oDs, string.Format("El comando se completó con {0} registro/s afectado/s", numRows.ToString()));
                    oraCmd.Dispose();
                    oraCn.Close();
                }
                catch (OracleException e)
                {
                    FillExceptionDataSet(oDs, e.ToString());
                }
                finally
                {
                    if (oraCn.State != 0)
                    {
                        oraCn.Close();
                    }
                }
                break;

            case dbOrigen.PGSQL:
                NpgsqlConnection pgCn = new NpgsqlConnection(GetPGSQLCnString());
                try
                {
                    pgCn.Open();
                    NpgsqlCommand pgCmd = new NpgsqlCommand(sSQL, pgCn);
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            pgCmd.Parameters.Add(new NpgsqlParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    numRows = pgCmd.ExecuteNonQuery();
                    FillInfoDataSet(oDs, string.Format("El comando se completó con {0} registro/s afectado/s", numRows.ToString()));
                    pgCmd.Dispose();
                    pgCn.Close();
                }
                catch (NpgsqlException e)
                {
                    FillExceptionDataSet(oDs, e.ToString());
                }
                finally
                {
                    if (pgCn.State != 0)
                    {
                        pgCn.Close();
                    }
                }
                break;
            }
            return(oDs);
        }
Esempio n. 7
0
        public static object GetScalar(dbOrigen source, string sSQL, object[] aParam)
        {
            object r = null;
            int    i = 1;

            switch (source)
            {
            case dbOrigen.Ninguno:
                r = new DataSet();
                FillExceptionDataSet((DataSet)r, "No se ha especificado origen de datos.");
                break;

            case dbOrigen.ORA:
                OracleConnection oraCn = new OracleConnection(GetORACnString());
                try
                {
                    oraCn.Open();
                    OracleCommand oraCmd = new OracleCommand(RemoveSemiColon(sSQL), oraCn);
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            oraCmd.Parameters.Add(new OracleParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    r = oraCmd.ExecuteScalar();
                    oraCmd.Dispose();
                    oraCn.Close();
                }
                catch (OracleException e)
                {
                    r = new DataSet();
                    FillExceptionDataSet((DataSet)r, e.ToString());
                }
                finally
                {
                    if (oraCn.State != 0)
                    {
                        oraCn.Close();
                    }
                }
                break;

            case dbOrigen.PGSQL:
                NpgsqlConnection pgCn = new NpgsqlConnection(GetPGSQLCnString());
                try
                {
                    pgCn.Open();
                    NpgsqlCommand pgCmd = new NpgsqlCommand(sSQL, pgCn);
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            pgCmd.Parameters.Add(new NpgsqlParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    r = pgCmd.ExecuteScalar();
                    pgCmd.Dispose();
                    pgCn.Close();
                }
                catch (NpgsqlException e)
                {
                    r = new DataSet();
                    FillExceptionDataSet((DataSet)r, e.ToString());
                }
                finally
                {
                    if (pgCn.State != 0)
                    {
                        pgCn.Close();
                    }
                }
                break;
            }
            return(r);
        }
Esempio n. 8
0
        public static DataSet GetDataSet(dbOrigen source, string sSQL, object[] aParam)
        {
            int     i   = 1;
            DataSet oDs = new DataSet();

            switch (source)
            {
            case dbOrigen.Ninguno:
                FillExceptionDataSet(oDs, "No se ha especificado origen de datos.");
                break;

            case dbOrigen.ORA:
                OracleConnection oraCn = new OracleConnection(GetORACnString());
                try
                {
                    oraCn.Open();
                    OracleCommand oraCmd = new OracleCommand(RemoveSemiColon(sSQL), oraCn);
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            oraCmd.Parameters.Add(new OracleParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    OracleDataAdapter oraAdaptador = new OracleDataAdapter(oraCmd);
                    oraAdaptador.Fill(oDs);
                    oraCmd.Dispose();
                    oraCn.Close();
                }
                catch (OracleException e)
                {
                    FillExceptionDataSet(oDs, e.ToString());
                }
                finally
                {
                    if (oraCn.State != 0)
                    {
                        oraCn.Close();
                    }
                }
                break;

            case dbOrigen.PGSQL:
                NpgsqlConnection pgCn = new NpgsqlConnection(GetPGSQLCnString());
                try
                {
                    pgCn.Open();
                    NpgsqlCommand pgCmd = new NpgsqlCommand(sSQL, pgCn);
                    pgCmd.CommandTimeout = DBSettings.PGSQLCmdTimeOut;
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            pgCmd.Parameters.Add(new NpgsqlParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    NpgsqlDataAdapter pgAdaptador = new NpgsqlDataAdapter(pgCmd);
                    pgAdaptador.Fill(oDs);
                    pgCmd.Dispose();
                    pgCn.Close();
                }
                catch (NpgsqlException e)
                {
                    FillExceptionDataSet(oDs, e.ToString());
                }
                finally
                {
                    if (pgCn.State != 0)
                    {
                        pgCn.Close();
                    }
                }
                break;
            }
            return(oDs);
        }
Esempio n. 9
0
        public static DataSet GetSchemaFromQuery(dbOrigen source, string sSQL, object[] aParam)
        {
            int     i   = 1;
            DataSet oDs = new DataSet();

            switch (source)
            {
            case dbOrigen.Ninguno:
                FillExceptionDataSet(oDs, "No se ha especificado origen de datos.");
                break;

            case dbOrigen.ORA:
                OracleConnection oraCn = new OracleConnection(GetORACnString());
                try
                {
                    oraCn.Open();
                    OracleCommand oraCmd = new OracleCommand(RemoveSemiColon(sSQL), oraCn);
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            oraCmd.Parameters.Add(new OracleParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    OracleDataReader oraReader = oraCmd.ExecuteReader(CommandBehavior.SchemaOnly);
                    oDs.Tables.Add(oraReader.GetSchemaTable());
                    oraCmd.Dispose();
                    oraCn.Close();
                }
                catch (OracleException e)
                {
                    FillExceptionDataSet(oDs, e.ToString());
                }
                finally
                {
                    if (oraCn.State != 0)
                    {
                        oraCn.Close();
                    }
                }
                break;

            case dbOrigen.PGSQL:
                NpgsqlConnection pgCn = new NpgsqlConnection(GetPGSQLCnString());
                try
                {
                    pgCn.Open();
                    NpgsqlCommand pgCmd = new NpgsqlCommand(sSQL, pgCn);
                    if (aParam != null)
                    {
                        foreach (object param in aParam)
                        {
                            pgCmd.Parameters.Add(new NpgsqlParameter(string.Format("param{0}", i.ToString()), param));
                            i += 1;
                        }
                    }
                    NpgsqlDataReader pgReader = pgCmd.ExecuteReader(CommandBehavior.SchemaOnly);
                    oDs.Tables.Add(pgReader.GetSchemaTable());
                    pgCmd.Dispose();
                    pgCn.Close();
                }
                catch (NpgsqlException e)
                {
                    FillExceptionDataSet(oDs, e.ToString());
                }
                finally
                {
                    if (pgCn.State != 0)
                    {
                        pgCn.Close();
                    }
                }
                break;
            }
            return(oDs);
        }
Esempio n. 10
0
 public static bool IsColumn(dbOrigen source, string qualifiedName)
 {
     return(SchemaObjectExists(ColInfoFromName(source, qualifiedName)));
 }
Esempio n. 11
0
 public DBSchemaInfo(dbOrigen source, string name)
 {
     this.Source = source;
     this.Name   = name;
 }