public MODResultado ProbarConeccion(MODOrigenDatos origen)
        {
            EnumBaseDatosOrigen dbtype         = (EnumBaseDatosOrigen)origen.TipoOrigen;
            string coneccion                   = "";
            SqlConnectionStringBuilder builder = null;
            Object parametros                  = null;

            switch (dbtype)
            {
            case EnumBaseDatosOrigen.Oracle:
                coneccion          = Configuraciones.ObtenerConfiguracion("Conexiones", "ORA");
                builder            = new SqlConnectionStringBuilder(coneccion);
                builder.DataSource = string.Format("{0}{1}{2}", origen.Servidor, (string.IsNullOrEmpty(origen.Puerto) && origen.Puerto != "0" ? ":" + origen.Puerto.ToString() : ""), (!string.IsNullOrEmpty(origen.Sid) ? "/" + origen.Sid : ""));
                builder.UserID     = origen.UsuarioBD;
                builder.Password   = origen.ClaveBD;
                break;

            case EnumBaseDatosOrigen.SqlServer:
                coneccion              = Configuraciones.ObtenerConfiguracion("Conexiones", EnumBaseDatos.SIR.ToString());
                builder                = new SqlConnectionStringBuilder(coneccion);
                builder.DataSource     = string.Format("{0}{1}", origen.Servidor, (string.IsNullOrEmpty(origen.Puerto) && origen.Puerto != "0" ? ":" + origen.Puerto.ToString() : ""));
                builder.InitialCatalog = origen.Sid;
                builder.UserID         = origen.UsuarioBD;
                builder.Password       = origen.ClaveBD;
                break;
            }
            MODResultado resultado = new MODResultado();

            try
            {
                IDbConnection con = this.ObtenerConexion(builder.ConnectionString, dbtype);
                if (!string.IsNullOrEmpty(origen.consulta))
                {
                    var consulta = (CommandType.Text == (CommandType)origen.tipoMando) ? origen.consulta.ToLower().Replace("where", "where rownum = 1 and") : origen.consulta;
                    consulta = consulta.Replace("@periodo", "'" + DateTime.Now.ToString("yyyyMMdd") + "'");
                    var reader = con.ExecuteReader(consulta, parametros, commandType: (CommandType)origen.tipoMando);
                    var schema = reader.GetSchemaTable();
                    reader.Close();
                    List <MODCampos> campos = new List <MODCampos>();
                    foreach (DataRow row in schema.Rows)
                    {
                        campos.Add(new MODCampos
                        {
                            Nombre  = row["ColumnName"].ToString(),
                            Largo   = row["ColumnSize"].ToString(),
                            Ordinal = Convert.ToInt32(row["ColumnOrdinal"])
                        });
                    }
                    resultado.DatosAdicionales.Add("campos", JsonConvert.SerializeObject(campos));
                }
            }
            catch (Exception exp)
            {
                resultado.Errores.Add(exp.Message);
                Log.WriteLog(exp, this.GetType().FullName + "-" + nameof(ProbarConeccion),
                             String.Format(@"origen:{0}", System.Text.Json.JsonSerializer.Serialize(origen)),
                             ErrorType.Error);
            }
            return(resultado);
        }
예제 #2
0
        public static IDbConnection CrearConexion(string cadenaConeccion, EnumBaseDatosOrigen _origen = EnumBaseDatosOrigen.SqlServer)
        {
            IDbConnection conn = null;

            switch (_origen)
            {
            case EnumBaseDatosOrigen.SqlServer:
                conn = new SqlConnection(cadenaConeccion);
                break;

            case EnumBaseDatosOrigen.Oracle:
                conn = new OracleConnection(cadenaConeccion);
                break;

            default:
                throw new Exception("Base de datos no soportada");
            }
            conn.Open();
            return(conn);
        }
예제 #3
0
        public static IDbConnection CrearConexion(EnumBaseDatos _baseDatos = EnumBaseDatos.SIR, EnumBaseDatosOrigen _origen = EnumBaseDatosOrigen.SqlServer)
        {
            IDbConnection conn = null;

            switch (_origen)
            {
            case EnumBaseDatosOrigen.SqlServer:
                conn = new SqlConnection(ObtenerNombre(_baseDatos));
                break;

            case EnumBaseDatosOrigen.Oracle:
                conn = new OracleConnection(ObtenerNombre(_baseDatos));
                break;

            default:
                throw new Exception("Base de datos no soportada");
            }
            conn.Open();
            return(conn);
        }
예제 #4
0
 protected IDbConnection ObtenerConexion(string cadenaConeccion, EnumBaseDatosOrigen _origen)
 {
     return(Conexion.CrearConexion(cadenaConeccion, _origen));
 }