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); }
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); }
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); }
protected IDbConnection ObtenerConexion(string cadenaConeccion, EnumBaseDatosOrigen _origen) { return(Conexion.CrearConexion(cadenaConeccion, _origen)); }