<% #encoding: UTF-8 =begin CapicuaGen CapicuaGen es un software que ayuda a la creación automática de sistemas empresariales a través de la definición y ensamblado de diversos generadores de características. El proyecto fue iniciado por José Luis Bautista Martin, el 6 de enero del 2016. Puede modificar y distribuir este software, según le plazca, y usarlo para cualquier fin ya sea comercial, personal, educativo, o de cualquier índole, siempre y cuando incluya este mensaje, y se permita acceso el código fuente. Este software es código libre, y se licencia bajo LGPL. Para más información consultar http://www.gnu.org/licenses/lgpl.html =end %>using System; using System.Configuration; using System.Data; using System.Data.Common; using System.Text; using System.Collections.Generic; namespace <%=self.generation_attributes[:namespace]%> { /// /// Clase base de acceso a datos /// abstract partial class AccesoDatos { #region Propiedades /// /// Nombre de la conexión /// protected const string nombreConexion= <%=get_db_connection_name_method%>; /// /// Fabrica que crea los objetos de acceso a datos /// protected DbProviderFactory dbProviderFactory; #endregion Propiedades #region Constructor /// /// Constructor /// public AccesoDatos() { dbProviderFactory = <%=get_db_connection_provider_method%>; } #endregion Constructor #region Sentencias SQL /// /// Listado completo de los registros /// /// Listado completo de los registros public abstract IEnumerable Listar(); /// /// Consulta /// /// Registro a consultar /// Registro consultado public abstract T Consultar(T registro); /// /// Consulta si un registro existe /// /// Registro a consultar /// Devuelve el registro o nulo public abstract T ConsultarExiste(T registro); /// /// Actualización /// /// Registro a actualizar public abstract void Actualizar(T registro); /// /// Inserta un registro /// /// Registro para insertar public abstract void Insertar(T registro); /// /// Borrado de registros /// /// Registro a eliminar public abstract void Eliminar(T registro); #endregion Sentencias SQL #region funciones para crear comandos /// /// Devuelve una conexión abierta a base de datos /// /// Conexión abierta protected virtual DbConnection CrearConexionAbierta() { DbConnection dbConnection = dbProviderFactory.CreateConnection(); dbConnection.ConnectionString = <%=get_db_connection_string_method%>; dbConnection.Open(); return dbConnection; } /// /// Crea un comando de texto /// /// Texto a crear /// comando protected virtual DbCommand CrearComando(string textoComando) { DbCommand comando = dbProviderFactory.CreateCommand(); comando.CommandType = CommandType.Text; comando.CommandText = textoComando; return comando; } /// /// Agregado un parámetro a un comando /// /// Comando /// Nombre del parámetro /// Tipo del parámetro /// Valor del parámetro protected virtual void AgregarParametro(DbCommand comando, string nombre, DbType tipoSql, object valor) { DbParameter parametro = dbProviderFactory.CreateParameter(); parametro.ParameterName = nombre; parametro.DbType = tipoSql; parametro.Value = valor; comando.Parameters.Add(parametro); } #endregion funciones para crear comandos } }