Ejemplo n.º 1
0
        private Mensaje creaConexionSQLServer(ConnectionDB connexion, string query, TipoResultado tipoResultado)
        {
            List <object> resultado = new List <object>();

            ////SqlTransaction sqlTrans = null;
            inicializaVariableMensaje();
            try
            {
                //Code 12630
                //(SqlConnection)dbContext.Database.Connection

                ///new SqlConnection(dbContext.Database.Connection.ConnectionString)
                using (SqlConnection conn = (SqlConnection)EntityFrameworkCxn.createDbConnection(connexion))
                {
                    conn.Open();
                    //sqlTrans = conn.BeginTransaction();

                    SqlCommand command = new SqlCommand(query, conn); //, sqlTrans

                    foreach (var item in generadorQueries.valoresParametrosQuery)
                    {
                        command.Parameters.Add(new SqlParameter(item.Key, item.Value));
                    }

                    object   instancia = null;
                    object[] valores;

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        int cont = 0, columnas = reader.FieldCount;
                        while (reader.Read())
                        {
                            valores = new object[generadorQueries.tipoDatosSelect.Count];
                            foreach (var item in generadorQueries.tipoDatosSelect)
                            {
                                instancia     = generaInstanciaValores(reader, item, cont);
                                valores[cont] = instancia;
                                cont++;
                                Console.WriteLine(instancia);
                            }
                            resultado.Add(valores);
                            cont = 0;
                        }
                    }
                }
                //  sqlTrans.Commit();
                mensajeResultado.noError = 0;
                mensajeResultado.error   = "";
                if (tipoResultado == TipoResultado.Unico)
                {
                    if (resultado.Count > 0)
                    {
                        if (generadorQueries.tipoDatosSelect.Count == 1)
                        {
                            object[] valor = (object[])resultado[0];
                            mensajeResultado.resultado = valor[0];
                        }
                        else
                        {
                            mensajeResultado.resultado = resultado[0];
                        }
                        return(mensajeResultado);
                    }
                    else
                    {
                        mensajeResultado.resultado = null;
                    }
                }
                else
                {
                    mensajeResultado.resultado = resultado;
                }
            }
            catch (Exception ex)
            {
                //if (sqlTrans != null)
                //{
                //    sqlTrans.Rollback();
                //}
                System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("creaConexionSQLServer()1_Error: ").Append(ex));
                mensajeResultado.noError   = ControlErroresEntity.buscaNoErrorPorExcepcion(ex);
                mensajeResultado.error     = ex.GetBaseException().ToString();
                mensajeResultado.resultado = null;
            }
            return(mensajeResultado);
        }
Ejemplo n.º 2
0
        public static ISessionFactory createSessionFactorie(ConnectionDB conexion = null, int tipoDb = -1)
        {
            var    cfg      = new Configuration();
            String server   = conexion == null ? "" : conexion.server;
            String database = conexion == null ? "" : conexion.nombreBd;
            String user     = conexion == null ? "" : conexion.usuario;
            String pass     = conexion == null ? "" : conexion.password;
            String port     = conexion == null ? "" : conexion.puertoServer;

            String cxn = null;

            if (conexion.tipoServer == TypeDB.SQLServer)//SQLServer
            {
                cfg.DataBaseIntegration(x =>
                {
                    cxn = "Server=" + server + ";" + "Database=" + database + ";" + "Uid=" + user + ";" + "Pwd=" + pass + ";";
                    x.ConnectionString = cxn;
                    x.Dialect <MsSql2012Dialect>();
                    x.LogSqlInConsole = true;
                    x.BatchSize       = 30;
                });

                //  cfg.SetProperty(NHibernate.Cfg.Environment.DefaultSchema, "dbo");
            }
            if (conexion.tipoServer == TypeDB.MySQL)
            {
                cfg.DataBaseIntegration(x =>
                {
                    cxn = "Server=" + server + ";" + "Port=" + port + ";" + "database=" + database + ";" + "user="******";"
                          + "password="******";" /*+ "sslmode=" + "none" + ";"*/;
                    x.ConnectionString = cxn;
                    x.Dialect <MySQL5Dialect>();
                    x.LogSqlInConsole = true;
                    x.BatchSize       = 30;
                });
            }

            cfg.SetProperty("current_session_context_class", "web");
            //Create or update for first | validate for Production
            if (conexion == null)
            {
                /* cfg.AddFile(HttpContext.Current.Server.MapPath(@"~\mapeos\ServidoresBd.hbm.xml"));*/
            }

            if (tipoDb == 1)
            {   //Master
                /*Options: create, update, validate*/
                cfg.SetProperty("hbm2ddl.auto", "validate");
                Hibernate.HBClass.AddAssemblyMaster(cfg);
            }
            else if (tipoDb == 2)
            {   //Simple
                /*Options: create, update, validate*/
                cfg.SetProperty("hbm2ddl.auto", "validate");
                Hibernate.HBClass.AddAssemblySimple(cfg);
            }
            else if (tipoDb == 3)
            {   //DBLogin
                /*Options: create, update, validate*/
                cfg.SetProperty("hbm2ddl.auto", "validate");
                Hibernate.HBClass.AddAssemblyLogin(cfg);
            }

            var sefact = createFactory(cfg, cxn);

            return(sefact);
        }